Создание вложенного объекта JSON - PullRequest
3 голосов
/ 12 сентября 2011

Я пытаюсь создать сложный вложенный объект, подобный этому:

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

Я хочу вложить другие объекты, как показано выше. Может кто-нибудь сказать мне, как я могу это сделать? Какую функцию или формат мне нужно использовать?

Ответы [ 7 ]

9 голосов
/ 12 сентября 2011

«друзья» - это JSONArray, каждый из его пунктов - JSONObject. Просто используйте put с JSONObject или JSONArray в качестве значения. Для массивов вам также потребуется указать индекс.

5 голосов
/ 12 сентября 2011

В JSONObject есть функция

put(String string, Object value)

, который принимает JSONArray, из которого вы можете сделать его массивом JSONObject. Я полагаю, ваш класс «друг» может сгенерировать JSONObject, который будет помещен в список.

2 голосов
/ 12 сентября 2011

Ознакомьтесь с этими примерами кодирования JSON, чтобы вы могли легко управлять им с помощью.

Кодировка JSON

1 голос
/ 12 сентября 2011

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/

1 голос
/ 12 сентября 2011

Используйте этот jar-файл JSON, он автоматически устанавливается и получает значения в соответствии с тэгами (например, имя, фамилия и т. Д.). Загрузка и использование jar-файла можно получить по ссылке

Android json jar file

1 голос
/ 12 сентября 2011

Я переключаю тему, но настаиваю на том, чтобы вы использовали Gson , так как он поддерживает все элементы в одном классе с getter / setter во время выполнения

0 голосов
/ 24 апреля 2015

если вы хотите создать вложенные объекты 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...