开发者

How to create complex structured JSON

开发者 https://www.devze.com 2023-03-19 22:16 出处:网络
I want to create JSON , format is like "header": { "b":"aaaa", "c":"00",

I want to create JSON , format is like

"header":
            {
                "b":"aaaa",
                "c":"00",
                "d":"zzzzz",
                "e": "0"
            },
"Body":
            {
                "g":
                [
                    {
                        "h": "sss",
                        "i": "vvvv",
                        "j": "11111"
                    },
                    {
                        "h": "wwww",
                        "i": "ddddd",
                        "j": "0000"
                    },
                    {
                        "h": "eeeee",
                        "i": "asd开发者_运维百科f"
                    }
                ]
            }

I want to create this JSON with the help of GSON.


The target JSON example in the original question is invalid. JSON must start with either '[' or '{'. If the invalid JSON in the original question is wrapped in '{' and '}', then it is a valid JSON object. (It's easy to use http://jsonlint.com to validate JSON.) Assuming then that such a JSON object is the target data structure, following is an example of using a matching Java data structure with Gson to generate the JSON.

import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    Header header = new Header("aaaa", "00", "zzzzz", "0");
    List<Gs> g = new ArrayList<Gs>();
    g.add(new Gs("sss", "vvvv", "11111"));
    g.add(new Gs("wwww", "ddddd", "0000"));
    g.add(new Gs("eeeee", "asdf", null));
    Body body = new Body(g);
    Message message = new Message(header, body);

    System.out.println(new Gson().toJson(message));
  }
}

class Message
{
  Header header;
  Body Body;

  Message(Header header, Body body)
  { this.header = header; this.Body = body; }
}

class Header
{
  String b;
  String c;
  String d;
  String e;

  Header(String b, String c, String d, String e)
  { this.b = b; this.c = c; this.d = d; this.e = e; }
}

class Body
{
  List<Gs> g;

  Body(List<Gs> g)
  { this.g = g; }
}

class Gs
{
  String h;
  String i;
  String j;

  Gs(String h, String i, String j)
  { this.h = h; this.i = i; this.j = j; }
}
0

精彩评论

暂无评论...
验证码 换一张
取 消