Java 使用JSONObject进行json解析

Java 使用JSONObject进行json解析,java,json,jsonobject,Java,Json,Jsonobject,我的数据如下: { "region": ["{'price':'119','volume':'20000','pe':'0','eps':'4.22','week53low':'92','week53high':'134.4','daylow':'117.2','dayhigh':'119.2','movingav50day':'115','marketcap':'0','time':'2015-11-25 05:13:34.996'}",

我的数据如下:

   {
       "region":  
             ["{'price':'119','volume':'20000','pe':'0','eps':'4.22','week53low':'92','week53high':'134.4','daylow':'117.2','dayhigh':'119.2','movingav50day':'115','marketcap':'0','time':'2015-11-25 05:13:34.996'}",   
              "{'price':'112','volume':'20000','pe':'0','eps':'9.22','week53low':'92','week53high':'134.4','daylow':'117.2','dayhigh':'119.2','movingav50day':'115','marketcap':'0','time':'2015-11-25 05:13:34.996'}",   
              "{'price':'118','volume':'20000','pe':'0','eps':'1.22','week53low':'92','week53high':'134.4','daylow':'117.2','dayhigh':'119.2','movingav50day':'115','marketcap':'0','time':'2015-11-25 05:13:34.996'}"  
              ]  
    }  
我在做下面的事

        JSONObject jsonObj = new JSONObject(jsonString);
        JSONArray regionArray = jsonObj.getJSONArray("region");  
我怎样才能得到每个价格

for (int i = 0; i < regionArray.length(); i++) {

             JSONObject item = regionArray.getJSONObject(i); 
             System.out.println(item.getString("price"));
        }  

Caused by: com.gemstone.org.json.JSONException: JSONArray[0] is not a JSONObject.
for(int i=0;i
您有一个字符串数组,而不是JSON对象数组,因此无法对其执行JSON对象方法

为了让代码正常工作,JSON必须如下所示:

{
  "region": [
    {
      "price": "119",
      "volume": "20000",
      "pe": "0",
      "eps": "4.22",
      "week53low": "92",
      "week53high": "134.4",
      "daylow": "117.2",
      "dayhigh": "119.2",
      "movingav50day": "115",
      "marketcap": "0",
      "time": "2015-11-25 05:13:34.996"
    },
    {
      "price": "112",
      "volume": "20000",
      "pe": "0",
      "eps": "9.22",
      "week53low": "92",
      "week53high": "134.4",
      "daylow": "117.2",
      "dayhigh": "119.2",
      "movingav50day": "115",
      "marketcap": "0",
      "time": "2015-11-25 05:13:34.996"
    },
    {
      "price": "118",
      "volume": "20000",
      "pe": "0",
      "eps": "1.22",
      "week53low": "92",
      "week53high": "134.4",
      "daylow": "117.2",
      "dayhigh": "119.2",
      "movingav50day": "115",
      "marketcap": "0",
      "time": "2015-11-25 05:13:34.996"
    }
  ]
}
我只是在文本编辑器中自动替换了它。如果您愿意,实际上可以将数字从其“”存储模块中释放出来

请看这里:


这里有一些关于Json的信息:

Json数组中的每个项目都是一个字符串,为什么要将其解析为Json?我想访问数组中的每个元素..这是不可能的,但既然它是一个字符串,就应该使用
string item=regionArray.getString(I)
。如果您需要获得解析字符串所需的价格,因为它不是JSON。假设我有一个嵌入的,那么如何找到它。
JSONObject item=new-JSONObject(regionArray.getString(I))
。但实际上,您应该使用json对象而不是字符串。不要使代码过于复杂。假设我必须{而不是(price@Aman使用我在这里输入的JSON,您可以在不更改代码的情况下找到价格。