1. {"distinctvalue":"-1","classLabel":[{"key":"-1","value":0},{"key":"\u003e4.0","value":3}],"total":3}
2. {"distinctvalue":"1","classLabel":[{"key":"\u003c\u003d4.0","value":1},{"key":"1","value":0}],"total":1}
Я хочу, чтобы извлечь "classLabel". Так что у меня есть POJO класс
public class AttrClsJson {
/**
* @param args
*/
String key;
int value;
кодекса
for (int i = 0; i < arr.size(); i++) {
System.out.println("arr.get(i).toString()---------->"+arr.get(i).toString());
AttrClsJson clsInfo = gson.fromJson(arr.get(i).toString().trim(), AttrClsJson.class);
int val = clsInfo.getValue();
System.out.println("val--- "+val);
}
Для первого JSON я в состоянии получить ключ и значение из «classLabel»
1. arr.get(i).toString()---------->{key=-1, value=0.0}
val--- 0
arr.get(i).toString()---------->{key=>4.0, value=3.0}
val--- 3
2.
arr.get(i).toString()---------->{key=<=4.0, value=1.0}
Для выше string Я не могу получить значение.
И ошибка генерируется в строке "AttrClsJson clsInfo = gson.fromJson(arr.get(i).toString().trim(), AttrClsJson.class);"
com.google.gson.JsonSyntaxException: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 8
at com.google.gson.Gson.fromJson(Gson.java:818)
at com.google.gson.Gson.fromJson(Gson.java:768)
at com.google.gson.Gson.fromJson(Gson.java:717)
at com.google.gson.Gson.fromJson(Gson.java:689)
я делаю что-то неправильно? Пожалуйста, предложите.
EDIT
{ключ = < = 4,0, значение = 1,0}
Когда я исследовал значение не извлекается, когда ключ содержит «< =», для всех остальных я могу получить значение ,
Как вы получаете массив 'arr'? И что это такое? –
Похож на «карту», которая создает значение «toString», которое вообще не является JSON. –
JSONArray arr = attrInfo.getClassLabel(); из другого POJO –