为什么我无法将我的字符串解析为JsonValue?

时间:2017-04-24 23:17:41

标签: java json parsing

为什么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)

1 个答案:

答案 0 :(得分:0)

评级json应格式化为数组。 在json中,值的数组将被声明为:

{

“标题”: “麻木”,

“艺术家”:“林肯公园”,

<强> “收视率”:[5,4,5,1,3],

“youtubeID”: “kXYiU_JCYtU”

}

在你的情况下,有一个混淆是4是否是rating数组的下一个元素,或者它是json中的下一个元素。 在解析之前使用一些在线json解析器来验证你的json是否可以解析。