为什么JsonObject“obj”不是对象? 字符串“ha”的格式为JsonString
public static JsonObject get() {
String response = "";
JsonObject obj= new JsonObject();
int i = 0;
String ha = "";
String h = "";
ArrayList <Integer> ra = new ArrayList <Integer>();
try{ response = Request.Get("my url")
.execute().returnContent().asString();
}
catch(IOException ex){ ex.printStackTrace();
}
String[] data = response.split("}");
ArrayList<String> dataInList = new ArrayList<String>(Arrays.asList(data));
obj.add(response, 0); ha = obj.toString().substring(1);
JsonValue jsonValue = Json.parse(ha);
obj = jsonValue.asObject();
如果我要回“ha”
结果将是:{\"title\":\"Numb\",\"artist\":\"Linkin Park\",\"ratings\":5,4,5,1,3,\"youtubeID\":\"kXYiU_JCYtU\"}
但是如果我将返回JsonObject obj
,结果将是:
Exception in thread "main" java.lang.UnsupportedOperationException: Not an object: "{\"title\":\"Carly Rae Jepsen - I Really Like You (Live At Capital Summertime Ball)\",\"artist\":\"CarlyRaeJepsenVEVO\",\"ratings\":5,\"youtubeID\":\"5kwZCFItrfY\"}"
at com.eclipsesource.json.JsonValue.asObject(JsonValue.java:295)
at MusicRatings.getAllSongsFromAPI(MusicRatings.java:146)
at MusicRatings.main(MusicRatings.java:257)
答案 0 :(得分:0)
评级json应格式化为数组。 在json中,值的数组将被声明为:
{
“标题”: “麻木”,
“艺术家”:“林肯公园”,
<强> “收视率”:[5,4,5,1,3],强>
“youtubeID”: “kXYiU_JCYtU”
}
在你的情况下,有一个混淆是4是否是rating数组的下一个元素,或者它是json中的下一个元素。 在解析之前使用一些在线json解析器来验证你的json是否可以解析。