1

我是JSON解析的新手,我需要您的帮助来了解如何解析 .json 文件中的JSON对象Array

我的JSON结构log如下:

{A:"text",B:"text",C:[{T:"Text",D:{E:"Text",F:{G:"time"}},H:{I:"200"},J:{K:{L:53,M:2.2},N:"Text"},P:{Q:"Time"}}]}

log 是我上面的输入JSON

JSONObject logJson = (JSONObject) JSONSerializer.toJSON( log );
String a = logJson.getString("A");
String b = logJson.getString("B");

现在的问题是我如何解析Array和获取JSONObject. 我正在使用net.sfAPI。

4

2 回答 2

1

首先,我认为你的 json 格式无效。

“键”也必须位于“中,例如 "A":"text"

您可以通过使用获取“C”数组JSONArray jsonArray = logJson.getJSONArray("C");

在数组上,您可以迭代:

for(int i = 0; i < jsonArray.length(); i++)
{
    JSONObject obj = jsonArray.getJSONObject(i);
    ...
}
于 2012-11-29T13:47:26.103 回答
0

希望这会有所帮助::

    JSONObject objonthwiseClaimJSON = JSONObject.fromString(strJSONMonthwiseClaim);

    JSONArray objDateWiseClaimJSONArr = objonthwiseClaimJSON.getJSONArray("dateWiseClaimList");

 for(int dtwclaim=0; dtwclaim<objDateWiseClaimJSONArr.length();dtwclaim++)
{
                 JSONObject objDateWiseClaimJSONObject =(JSONObject) objDateWiseClaimJSONArr.get(dtwclaim);
                 String dcnid = (String) objDateWiseClaimJSONObject.get("dcnid");
                 String remark = (String) objDateWiseClaimJSONObject.get("remark");
    }

在你的情况下::

JSONObject logJson = (JSONObject) JSONSerializer.toJSON( log );
String a = logJson.getString("A");
String b = logJson.getString("B");
JSONArray c = logJson.getJSONArray("C"); // If C is not an array, just a plain object

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

}
于 2012-11-29T13:46:12.010 回答