-2

我是一名 android 应用程序程序员,现在正在研究 JSON,我有一种 json 格式,如下所示。我正在为我的 android 程序获取这种格式的表单服务器,但问题是无法在 listview 中显示结果。可以为我提供读取该 json 格式的逻辑。

{
"1":
    {
        "sub1":{"marks":"10",
            "maxmarks":"60",
            "grade":"D"
            },
        "sub2":{"marks":"",
            "maxmarks":"60",
            "grade":""
            }
    },
"2":
    {
        "sub3":{"marks":"30",
            "maxmarks":"60",
            "grade":"B"
            },
        "sub4":{"marks":"",
            "maxmarks":"60",
            "grade":""
            }
    }
}  
4

3 回答 3

2

在 Android 中使用 JSONObject:http: //developer.android.com/reference/org/json/JSONObject.html

这是一个很好的教程:http ://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/

例如:

JSONObject json = new JSONObject(<your json string>); 
JSONObject objectOne = json.getJSONObject("1");
JSONObject subOne = objectOne.getJSONObject("sub1");
string marksOne = subOne.getString("marks");
string maxMarksOne = subOne.getString("maxmarks");
string gradeOne = subOne.getString("grade");
于 2013-03-10T08:37:48.043 回答
0

你想在你的 ListView 中显示什么信息?这将帮助我们帮助您解析它。

对于初学者,您可以使用...将数据与两个对象分开

    //Assuming your original object is named responseObj
    JSONObject obj1 = responseObj.getJSONObject("1");
    JSONObject obj2 = responseObj.getJSONObject("2");

    //Now to get each piece of data
    JSONObject s1 = obj1.getJSONObject("sub1");
    string marks1 = s1.getString("marks");
    string maxMarks1 = s1.getString("maxmarks");
    string grade1 = s1.getString("grade");

    JSONObject s3 = obj2.getJSONObject("sub3");
    string marks3 = s3.getString("marks");
    string maxMarks3 = s3.getString("maxmarks");
    string grade3 = s3.getString("grade");

从这里你有所有的数据,并可以将它们添加到 TextView 中的 ListView

于 2013-03-10T08:49:43.937 回答
0

有许多库可以帮助您完成任务,例如JacksonGS​​ON

于 2013-03-10T08:35:05.337 回答