创建嵌套的JSON对象

时间:2011-09-12 05:08:51

标签: android json object

我正在尝试创建一个复杂的嵌套对象:

{
   "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();
    }

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

8 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:5)

JSONObject中有一个函数

put(String string, Object value)

它接受一个JSONArray,你可以使它成为JSONObject的数组。我想你的“朋友”类可以生成放入列表的JSONObject。

答案 2 :(得分:2)

查看这些JSON编码示例,以便您可以轻松管理它。

JSON Encoding

答案 3 :(得分:1)

我正在切换主题,但坚持要使用 Gson ,因为它使用运行时getter / setter维护一个类中的all元素

答案 4 :(得分:1)

使用此Json jar文件自动设置并根据标记名获取值(例如:名字,姓氏等)   下载和使用jar文件来自belo链接

Android json jar file

答案 5 :(得分: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/

答案 6 :(得分:0)

如果要创建嵌套的json对象,则可以使用以下代码:

            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);

答案 7 :(得分:0)

//Import the following
//import java.util.ArrayList;
//import org.bson.Document;

Document root= new Document();
Document rootUser = new Document();
ArrayList rootFriends= new ArrayList();
Document rootFriends0 = new Document();
Document rootFriends1 = new Document();
Document rootFriends2 = new Document();




rootUser.append("type","facebook");   
rootUser.append("first_name","harsha");
rootUser.append("last_name","mv");
rootUser.append("gender","male");
rootFriends0.append("id","23");
rootFriends0.append("name","Vachana");
rootFriends1.append("id","23");
rootFriends1.append("name","Jyosna");
rootFriends2.append("id","23");
rootFriends2.append("name","Avinash");




if (!rootUser.isEmpty()){
root.append("user",rootUser);
}
if (!rootFriends.isEmpty()){
root.append("friends",rootFriends);
}
if (!rootFriends0.isEmpty()){
rootFriends.add(rootFriends0);
}
if (!rootFriends.isEmpty()){
root.append("friends",rootFriends);
}
if (!rootFriends1.isEmpty()){
rootFriends.add(rootFriends1);
}
if (!rootFriends.isEmpty()){
root.append("friends",rootFriends);
}
if (!rootFriends2.isEmpty()){
rootFriends.add(rootFriends2);
}
if (!rootFriends.isEmpty()){
root.append("friends",rootFriends);
}


System.out.println(root.toJson());