zoukankan      html  css  js  c++  java
  • 【Android】生成json string的四种方法


    下面介绍生成以下json数据的三种方法:

    1.利用JsonObject生成
        JsonObject jObj = new JsonObject();
    
        JsonObject jObj1 = new JsonObject();
        JsonObject jObj2 = new JsonObject();
    
        JsonObject jObj21 = new JsonObject();
        JsonObject jObj22 = new JsonObject();
    
        jObj1.addProperty("jObj11", "value11");
        jObj1.addProperty("jObj12", "value12");
    
    
        jObj21.addProperty("jObj211", "value211"); // level 2
        jObj21.addProperty("jObj212", "value212");
        jObj21.addProperty("jObj213", "value213");
    
        jObj22.addProperty("jObj221", "value221");
        jObj22.addProperty("jObj222", "value222");
        jObj22.addProperty("jObj223", "value223");
    
        jObj2.add("jObj21", jObj21);  // level 1
        jObj2.add("jObj22", jObj22);
    
        jObj.add("jObj1", jObj1); // level 0
        jObj.add("jObj2", jObj2);
    
        String json = new Gson().toJson(jObj);
    

    2.利用JSONOBJECT(org.json.JSONObject)生成

    try {
    JSONObject obj22 = new JSONObject();
    obj22.put("jobj223", "value223");
    obj22.put("jobj222", "value222");
    obj22.put("jobj221", "value221");

    JSONObject obj21 = new JSONObject();
    obj21.put("jobj213", "value213");
    obj21.put("jobj212", "value212");
    obj21.put("jobj211", "value211");

    JSONObject obj2 = new JSONObject();
    obj2.put("jobj22", obj22);
    obj2.put("jobj21", obj21);

    JSONObject obj1 = new JSONObject();
    obj1.put("jobj12", "value12");
    obj1.put("jobj11", "value11");

    JSONObject obj = new JSONObject();
    obj.put("jobj1", obj1);
    obj.put("jobj2", obj2);

    obj.toString();
    } catch (JSONException e) {
    e.printStackTrace();
    }

    3.利用Gson库生成

    首先新建下面5个需要用到的类

    1.
    public class Obj22 {

    @SerializedName("jobj223")
    private String mObj223;

    @SerializedName("jobj222")
    private String mObj222;

    @SerializedName("jobj221")
    private String mObj221;

    public Obj22(String obj223, String obj222, String obj221) {
    mObj223 = obj223;
    mObj222 = obj222;
    mObj221 = obj221;
    }

    2.

    public class Obj21 {

    @SerializedName("jobj213")
    private String mObj213;

    @SerializedName("jobj212")
    private String mObj212;

    @SerializedName("jobj211")
    private String mObj211;

    public Obj21(String obj213, String obj212, String obj211) {
    mObj213 = obj213;
    mObj212 = obj212;
    mObj211 = obj211;
    }
    }
    3.

    public class Obj2 {

    @SerializedName("jobj22")
    private Obj22 mObj22;

    @SerializedName("jobj21")
    private Obj21 mObj21;

    public Obj2(Obj22 obj22, Obj21 obj21) {
    mObj22 = obj22;
    mObj21 = obj21;
    }
    }
    4.

    public class Obj1 {

    @SerializedName("jobj12")
    private String mObj12;

    @SerializedName("jobj11")
    private String mObj11;

    public Obj1(String obj12, String obj11) {
    mObj12 = obj12;
    mObj11 = obj11;
    }
    }
    5.

    public class Obj {

    @SerializedName("jobj2")
    private Obj2 mObj2;

    @SerializedName("jobj1")
    private Obj1 mObj1;

    public Obj(Obj2 j2, Obj1 j1) {
    mObj2 = j2;
    mObj1 = j1;
    }
    }

    6.创建需要的对象

    private void objTest() {
    Obj22 j22 = new Obj22("value213", "value212", "value211");
    Obj21 j21 = new Obj21("value213", "value212", "value211");
    Obj2 j2 = new Obj2(j22, j21);

    Obj1 j1 = new Obj1("value12", "value11");
    Obj j = new Obj(j2, j1);

    }

    4.直接用string赋值

     

  • 相关阅读:
    ABC065D Built[最小生成树]
    loj2718 「NOI2018」归程[Kruskal重构树+最短路]
    BZOJ1821 部落划分[最小生成树]
    BZOJ4777 [Usaco2017 Open]Switch Grass[最小生成树+权值线段树套平衡树]
    CF888G Xor-MST[最小生成树+01trie]
    Atcoder CODE FESTIVAL 2016 Final G
    BZOJ4883 [Lydsy1705月赛]棋盘上的守卫[最小基环树森林]
    BZOJ3714 [PA2014]Kuglarz[最小生成树]
    BZOJ1601 [Usaco2008 Oct]灌水[最小生成树]
    CF892E Envy[最小生成树]
  • 原文地址:https://www.cnblogs.com/ryq2014/p/6323694.html
Copyright © 2011-2022 走看看