在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可以是StringJSONObjectJSONArray等。

关于java - 如何使用Java读取JSON数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11541798/

10-13 21:42