2013-03-10 114 views
-2

是一个Android应用程序的程序员和工作JSON,现在,我有JSON的格式,如下图所示。我得到这样的格式表单服务器到我的android程序,但问题是我无法在列表视图中显示结果。 可以为我提供读取该json格式的逻辑。如何阅读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":"" 
      } 
    } 
} 
+0

所以在添加到您的ListView如果您的文件中只有JSONObjects,那么请查看关于解析JSONObject的一些教程。谷歌将成为你的朋友。 – Sajmon 2013-03-10 10:12:23

回答

0

有图书馆,可以帮助你与像JacksonGSON

+1

Android有已经JSON支持 – RvdK 2013-03-10 08:36:45

+0

是的,但不是每个人都喜欢默认选项;在GSON或杰克逊我一些注释和POJO)可以轻松地获得了所有我所需要的Android默认选项的冗长的编码,而不是 – 2013-03-10 08:39:40

+0

真,映射可在使用复杂的JSON数据时非常方便! – RvdK 2013-03-11 13:08:06

2

任务使用的JSONObject Android中的号码: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"); 
+0

完美答案! +1! – Swayam 2013-03-10 08:45:51

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