2013-07-31 73 views
0

我处于这种情况,我必须读取json数据并将其插入到Sqlite表中。 但是这种格式的JSON数据:
阅读java中的json数据

{ 
    "result": "success", 
    "data": { 
     "userId": "873", 
     "volume": "0.5", 
     "schoolId": "0", 
     "schoolName": "", 
     "preferredLanguageId": "1", 
     "fname": "robin", 
     "lname": "singh", 
     "email": "[email protected]", 
     "password": "password1111", 
     "isParent": "0", 
     "countryId": "254", 
     "stateId": "143", 
     "state": "", 
     "city": "san diego", 
     "coins": "0", 
     "zip": "", 
     "players": [] 
    } 
} 

JSONObject json = new JSONObject(jsonString); 
String uname=json.getString("fname"); 

但我不能在字符串UNAME拿到的第一个名字。

+2

什么是错误? –

+0

尝试'JSONArray list =(JSONArray)jsonObject.get(“data”);'获取嵌套在数据属性中的所有属性的集合。 – rebeliagamer

回答

5
String uname=json.getString("fname"); 

不工作,因为fname属性嵌套在data属性中。因此,你需要做类似如下:

String uname = json.getJSONObject("data").getString("fname"); 
+0

直到代码格式化才看到那个;-) –

+0

@stonedsquirrel :-) – jabclab

0

你必须先拿到data属性,然后拿到fname财产。 fname属于data属性。

1
String uname = json.getJSONObject("data").getString("fname"); 
0

您需要将“data”作为JSON对象,然后将“fname”读作字符串。

有很多观众JSON网上,这是我最喜欢的一个:

http://jsonviewer.stack.hu/

String uname = json.getJSONObject("data").getString("fname"); 
0

首先,你必须从你的JSON字符串得到data对象。这里是一个例子:

JSONObject json = new JSONObject(jsonString); 
JSONObject data = json.getJSONObject("data"); 
String uname = data.getString("fname"); 

看看完整的例子here。 另外here是一个基于Web的工具,用于创建/编辑JSON

+0

感谢您的建议:) – lalitbhagtani