Как динамически создать следующую структуру JSON

1

Я пытаюсь создать следующую структуру JSON динамически

 {
    "items": 
    {


        "Popcorn":
            [
                {
                    "name": "RegularPack"
                },
                {
                    "name": "Bucket"
                }

            ],
        "Chips":
            [
                {
                    "name": "HotChips"
                },
                {
                    "name": "UncleChips"
                }

            ]
    }

}

Я пробовал, но не уверен, как это сделать.

Может ли кто-нибудь помочь мне?

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

import org.json.JSONException;

public class TEST {

    public static void main(String[] args) throws JSONException {

        Map<String, ArrayList<String>> data = new HashMap<String, ArrayList<String>>();

        ArrayList<String> popcornlist = new ArrayList<String>();
        popcornlist.add("Regular Pack");
        popcornlist.add("Bucket");

        ArrayList<String> chipslist = new ArrayList<String>();
        chipslist.add("HotChips");
        chipslist.add("Uncle Chips");

        data.put("Popcorn", popcornlist);
        data.put("Chips", chipslist);


        Iterator iterator=data.entrySet().iterator();

        while(iterator.hasNext()){
          Map.Entry e = ( Map.Entry ) iterator.next ( ) ;
          System.out.println("key: "+e.getKey());
        }
    }
}

Может кто-нибудь, пожалуйста, скажите мне, где открыть JSONObject и JSONArray?

Для этого я использую org.json.

  • 0
    Вы должны сделать это на стороне сервера? Это может быть легче сделать на стороне клиента, используя JavaScript
  • 0
    Да, у меня есть данные на стороне сервера, и мне нужно создать JSON, чтобы отправить его на фронтэнд.
Показать ещё 2 комментария
Теги:

1 ответ

1

См. Следующую ссылку, которая указывает, когда следует использовать JSONObject и JSONArray. Может быть проще отправить объект Java обратно на передний конец и использовать некоторый код на стороне клиента, чтобы проанализировать его на объект JSON, используя GSON

Кодирование JSON в Java

import org.json.simple.JSONObject;

class JsonEncodeDemo 
{
   public static void main(String[] args) 
   {
      JSONObject obj = new JSONObject();

      obj.put("name", "foo");
      obj.put("num", new Integer(100));
      obj.put("balance", new Double(1000.21));
      obj.put("is_vip", new Boolean(true));

      System.out.print(obj);
   }
}

Вывод

{"balance": 1000.21, "num":100, "is_vip":true, "name":"foo"}

Декодирование JSON в Java

import org.json.simple.JSONObject;
import org.json.simple.JSONArray;
import org.json.simple.parser.ParseException;
import org.json.simple.parser.JSONParser;

class JsonDecodeDemo 
{
   public static void main(String[] args) 
   {
      JSONParser parser=new JSONParser();
      String s = "[0,{\"1\":{\"2\":{\"3\":{\"4\":[5,{\"6\":7}]}}}}]";
      try{
         Object obj = parser.parse(s);
         JSONArray array = (JSONArray)obj;
         System.out.println("The 2nd element of array");
         System.out.println(array.get(1));
         System.out.println();

         JSONObject obj2 = (JSONObject)array.get(1);
         System.out.println("Field \"1\"");
         System.out.println(obj2.get("1"));    

         s = "{}";
         obj = parser.parse(s);
         System.out.println(obj);

         s= "[5,]";
         obj = parser.parse(s);
         System.out.println(obj);

         s= "[5,,2]";
         obj = parser.parse(s);
         System.out.println(obj);
      }catch(ParseException pe){
         System.out.println("position: " + pe.getPosition());
         System.out.println(pe);
      }
   }
}

Вывод

The 2nd element of array
{"1":{"2":{"3":{"4":[5,{"6":7}]}}}}

Field "1"
{"2":{"3":{"4":[5,{"6":7}]}}}
{}
[5]
[5,2]

Ещё вопросы

Сообщество Overcoder
Наверх
Меню