java后端server层生成json、json、json数据、json排序

一、json封装和解析思路:
1、解析:主要看object、Array保函关系。及{}、[]保函关系,谁在外就先提取谁。遇到{}用JSONObject,遇到[]用JSONArray。{}中保函[]用jsonobject.getJSONArray,再循环遍历key-value对象。
2、封装:
a、循环遍历数据表数据,得到column信息,
b、put到jsonobject,或put到map,
c、把map对象存到数组中:add到jsonArray中。

二、json前后端整体思路:
1、链接数据库:配置数据库信息、写dao、entity、xml 或写query
2、server层封装数据:使用集合、循环、计算、jsonobject、jsonarray等封装为json表数据。
3、Controller层调用server层的数据。
4、web层调用Controller层接口json数据。
5、web界面写page、js、chartsjs等生成图形信息或需要的表格数据。

java后端封装json:

测试:

java后端server层生成json、json、json数据、json排序

 code:

     

 //应在server层或Controller层中封装json
      //测试json:
      //json封装:方式一:jsonobject
      JSONObject jsonObject=new JSONObject();
      JSONArray jsonArray=new JSONArray();
      jsonObject.put("id","12j3ld9d9ssfew0rf8ercf");
      jsonObject.put("Name","北京xxxx交通市政工程xxxx");
      //.....多个jsonobject
 
      //jsonobject2一般省略,应在循环数据表中加入多个 id、name对象数据。
      JSONObject jsonObject2=new JSONObject();
      jsonObject2.put("id","4sdf9df7favg6sdf8886afd");
      jsonObject2.put("Name","天津xxxxx机械xxxxx");
 
      jsonArray.add(jsonObject);
      jsonArray.add(jsonObject2);
      System.out.println("jsonobject:"+jsonArray.toString());
 
      //json封装:方式二:Map泛型
      JSONArray jsonarray2=new JSONArray();
      Map<String ,String> map=new HashMap();
      map.put("id","45l08asd7fg5afgf7sde64fda");
      map.put("Name","北京xxxxx项目xxxx");
        //map2可省略,应在循环中加入map。
      Map<String,String> map2=new HashMap();
      map2.put("id","4ld9ffae8rgd90rws8r");
      map2.put("Name","太原xxxx招标项目");
 
      jsonarray2.add(map);
      jsonarray2.add(map2);
      System.out.println("Map:"+jsonarray2.toString());


排序:

java后端server层生成json、json、json数据、json排序

code:

//没有必要用TreeMap(Map<String,String> treemap=new TreeMap();),请先sql索引关键字排序好每条数据,在封装为JSON。
        //若单条数据column排序,建议用TreeMap
        Map<String,String> map=new TreeMap();
        map.put("id","sdfs8d6f5afd679f0adff8");
        map.put("Zxxx","info9");
        map.put("Txxx","info6");
        map.put("Bxxx","info2");
        JSONArray jsonArray=new JSONArray();
        jsonArray.add(map);
        System.out.println(jsonArray.toString());


 
java后端解析json:

测试:

java后端server层生成json、json、json数据、json排序

code:

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
 
public class jsontest {
    public static void main(String[] args) {
        //在此仅为测试,正式的请在server层写逻辑。
  //page反馈:{"projectResponse":{"Projectdata":[{"projectName":"北京xxx地铁xxx项目招标","projectType":"招标"},{"projectName":"天津xxx造价工程","projectType":"造价"}]},"status":"ok"}
      String jsonstr=" {\"projectResponse\":{\"Projectdata\":[{\"projectName\":\"北京xxx地铁xxx项目招标\",\"projectType\":\"招标\"}," +
              "{\"projectName\":\"天津xxx造价工程\",\"projectType\":\"造价\"}]},\"status\":\"ok\"}";
        JSONObject jsonobject=JSONObject.fromObject(jsonstr);
                JSONObject projectRes=jsonobject.getJSONObject("projectResponse");
        JSONArray jsonarray=projectRes.getJSONArray("Projectdata");
        for(int i=0;i<jsonarray.size();i++){
            JSONObject Projectinfo=jsonarray.getJSONObject(i);
            String projectName=Projectinfo.getString("projectName");
            String projectType=Projectinfo.getString("projectType");
            System.out.println("项目名称为:"+projectName+",项目类型为:"+projectType);
        }
    }
}


需要的jar:

dependencies {
    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
    //json
    implementation 'net.sf.json-lib:json-lib:2.4:jdk13'
    implementation 'commons-beanutils:commons-beanutils:1.9.3'
    implementation 'org.apache.commons:commons-collections4:4.4'
    implementation 'org.apache.commons:commons-lang3:3.11'
    implementation 'commons-logging:commons-logging:1.2'
 
}


未完待续....

上一篇:ArrayList(JSONArray)中isEmpty怎么用?


下一篇:关于 Wireshark3 中 GeoIP 的问题