2015-02-11 61 views
0
import org.json.simple.JSONObject; 
import org.json.simple.JSONValue; 
String Json = {"AccountToken":{"string":"hello"},"Event":{"string":"t"}} 
JSONObject genreJsonObject =(JSONObject)JSONValue.parseWithException(json); 
String account_id = (String) genreJsonObject.get("AccountToken"); 

抛出java.lang.ClassCastException错误JSON解析使用简单的JSON库

出了什么问题,请帮助?

+0

例如'AccountToken'的内容不是字符串? – njzk2 2015-02-11 21:22:38

+0

如果AccountToken也是jsonObject,代码将如何更改? – user2942227 2015-02-11 21:31:58

+0

AccountToken不是一个字符串。 – eckes 2015-02-11 21:48:34

回答

1

AccountToken是一个JSON对象,而不是字符串...

你需要将它转换为JSONObject的并在其上调用get()再次从它的内部结构得到的值

String json = "{\"AccountToken\":{\"string\":\"hello\"},\"Event\":{\"string\":\"t\"}}"; 
JSONObject genreJsonObject =(JSONObject)JSONValue.parseWithException(json); 
JSONObject accountToken = (JSONObject) genreJsonObject.get("AccountToken"); 
System.out.println(accountToken.get("string")); 

==> hello