在Java中读取/解析以下JSON字符串时遇到问题。
码:
try{
json = new JSONObject(result);
//json now looks like this :-
// {'header': '[{"doc_no": "DN00001","stage":"P"}]','section':'[{"upper":100,"lower":1]'}
if (json != null){
// this line is throwing an exception!!
JSONObject header = new JSONObject("header");
}catch(JSONException e){
// Error Message
}
我也尝试过这个:
JSONArray header = json.getJSONArray("header");
但仍然会引发一些异常。
我想念什么?
最佳答案
花花公子在这里拿这个代码。如果要从其中获取JSONObject,请修复您的JSON字符串
public static void main(String[] args) throws JSONException {
String result = "{'header': '[{\"doc_no\": \"DN00001\",\"stage\":\"P\"}]','section':'[{\"upper\":100,\"lower\":1]'}";
JSONObject json = new JSONObject(result);
// json now looks like this :-
//
if (json != null) {
String header = json.getString("header");
System.out.println(header);
}
}
那你怎么了几件事情:
您的JSON字符串都是非法的。感谢解析器与您共同承担。它应该是
{
"header": [{"doc_no": "DN00001","stage":"P"}],
"section":[{"upper":100,"lower":1]
}
它不会单独解决您的问题。由于您想获取
JSONObject
,但是您提供了JSONArray
(为什么这样做?)。因此,删除那些方括号。仍然不开心。您会看到您正在尝试通过使用字符串taht(不是JSON)(很明显)执行
JSONObject
来创建新的new JSONObject("header")
。 9并期望它不会引发错误?多么残酷。)此外,您想get
而不是set
。因此,请使用json.getXXX("header")
,其中XXX可以是String
,JSONObject
或JSONArray
等。关于java - 如何使用Java读取JSON数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11541798/