ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-09-07 15:00:40  阅读:204  来源: 互联网

标签:map java JSONArray JSONObject server json put new


一、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:

测试:

 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());


排序:

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:

测试:

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'
 
}


未完待续....

标签:map,java,JSONArray,JSONObject,server,json,put,new
来源: https://blog.csdn.net/xysxlgq/article/details/120158063

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有