【发布时间】:2018-11-02 22:50:43
【问题描述】:
我正在尝试获取一个 JSon 对象数组并将其放入一个字符串数组中。我不断收到org.glassfish.json.JsonStringImpl cannot be cast to javax.json.JsonObject
并且不知道该怎么做。
目前我有:
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String jsonStr = "";
if(br != null){
jsonStr = br.readLine();
}
// Create JsonReader object
StringReader strReader = new StringReader(jsonStr);
JsonReader reader = Json.createReader(strReader);
// Get the singular JSON object (name:value pair) in this message.
JsonObject obj = reader.readObject();
// From the object get the array named "inList"
JsonArray inArray = obj.getJsonArray("inList");
String[] myArray = new String[inArray.size()];
// Fills myArray with Json Objects converted to Strings
for (int i = 0; i < inArray.size(); i++) {
myArray[i] = inArray.get(i).toString();
}
示例输入 Json 为:{ "inList" : [ "Bob", "boj", "obb", "job", "BOB", "foo" ] }
【问题讨论】:
-
当你使用writeObject方法时,你输入了一个JsonStringImpl,而你想将reader.readObject()变成一个JsonObject,它们是不一样的,你不能
-
@azro 有什么解决办法吗?我的目标是对它们进行散列,但如果它们不是字符串,我的散列函数将不起作用
-
我不是来帮忙的,我只是指出了它不起作用的原因,你需要在输入和输出处使用相同的类