2011-09-12 332 views
3

我想创建一个复杂的嵌套的对象是这样的:创建一个嵌套的JSON对象

{ 
    "user":{ 
     "type":"facebook", 
     "first_name":"harsha", 
     "last_name":"mv", 
     "gender":"male" 
    }, 
    "friends":[ 
     { 
     "id":"23", 
     "name":"Vachana" 
     }, 
     { 
     "id":"23", 
     "name":"Jyosna" 
     }, 
     { 
     "id":"23", 
     "name":"Avinash" 
     } 
    ] 
} 

Android的Java代码:

JSONObject user = new JSONObject(); 
    try { 
     user.put("first_name", "harsha"); 
     user.put("last_name", "mv"); 
     user.put("gender", "mail"); 

     System.out.println(user); 
    } catch (JSONException e1) { 
     e1.printStackTrace(); 
    } 

我要嵌套的其他对象,如上图所示。有人能告诉我我该怎么做吗?我需要使用什么功能或格式?

回答

9

'朋友'是JSONArray,其每个项目是JSONObject。只需使用JSONObjectJSONArray即可。对于数组,您还必须指定索引。

1

我正在切换的主题,但坚持让你使用Gson,因为它在一个类运行时的getter/setter保持所有元素

1

使用此JSON JAR文件的自动设置,并得到根据值标记名(例如:名字,姓氏等) 下载jar文件的使用从贝卢链接获得

Android json jar file

1

GSON是最适合这个,用GSON可以使用普通班java和转弯他们JSON对象,这里是一个示例:

public class Member 
{  
public String ID; 
public String FirstName;  
public String LastName;  
public String Email;  
public String DisplayName ; 
public String DOB;  
public String AboutMe; 
public String MemberType; 
public String UserTypeName; 

} 

initiate Member class and fill in the values 
Member member = new Member(); 
member.ID = "1"; 
....... 

//now use GSON to get the JSON 

Gson gson = new Gson(); 
String JSONString = gson.toJson(member); 

更多检查这个http://code.google.com/p/google-gson/

+0

这是怎么套? – ben26941

2

结帐这些JSON编码的例子,这样你就可以通过轻松地管理它。

JSON Encoding

+1

伟大的教程... Thnx .. – CoderDecoder

5

中有JSONObject的

put(String string, Object value) 

一个函数,在JSONArray,其中你可以把它的JSONObject的数组。我想象你的“朋友”类可以生成放入列表中的JSONObject。

如果你想嵌套JSON对象,那么你可以使用下面的代码
0

  JSONObject objFirst = new JSONObject(); 
      objFirst.put("description", "ADBCD"); 
      objFirst.put("type", "TEXT"); 


      JSONObject objSecond = new JSONObject(); 
      objSecond.put("askjdhasjk", "XYZ"); 

      objFirst.accumulate("This Nw", objSecond);