`

java中json的使用

    博客分类:
  • json
 
阅读更多

json串示例

[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]

主要分为以下几种:

1. 直接构建json串,主要代码;

2. json串 -> java对象;

3. java对象 -> json串/json对象;

4. List<?> -> json串;

5. 对象数组 -> json串。

程序如下:

TestJson.java

import java.util.*;

import net.sf.json.*;

import com.hs.sig.ui.sgms.vo.User;

public class TestJson {

/**

* 初始化userList大小

*/

public static final int USERLISTSIZE = 3; 

/**

* 直接构建json串

* @return

*/

public String toJsonString() {

// 初始化 User 对象

User user = null;

List<User> userList = this.initUserList(USERLISTSIZE);

// 构建 json 串

StringBuffer json = new StringBuffer();

json.append("[");

for (int i = 0; i < userList.size(); i++) {

user = userList.get(i);

json.append("{");

json.append("\"id\":\"").append(user.getId()).append("\",");

json.append("\"name\":\"").append(user.getName()).append("\",");

json.append("\"password\":\"").append(user.getPassword()).append("\",");

json.append("\"remark\":\"").append(user.getRemark()).append('"');

json.append("},");

}

json.deleteCharAt(json.lastIndexOf(","));

json.append("]");

//System.out.println("直接构建 json 串结果:" + json.toString());

return json.toString();

}

/**

* json串 -> java对象

* @return

*/

public String jsonToObject() {

StringBuffer info = new StringBuffer();

if(this.isArray(this.toJsonString())){

JSONArray jSONArray = JSONArray.fromObject(this.toJsonString());

JsonConfig jsonConfig = new JsonConfig();

jsonConfig.setArrayMode(JsonConfig.MODE_LIST);

jsonConfig.setRootClass(User.class);

List<User> userList = (List<User>) JSONSerializer.toJava(jSONArray, jsonConfig);

User user = null;

for (int i = 0; i < userList.size(); i++) {

user = userList.get(i);

info.append("user" + (i + 1) + ".id=" + user.getId());

info.append(",user" + (i + 1) + ".name=" + user.getName());

info.append(",user" + (i + 1) + ".password=" + user.getPassword());

info.append(",user" + (i + 1) + ".remark=" + user.getRemark());

info.append("\n");

}

//System.out.println("json串 -> java对象:" + info.toString());

}

return info.toString();

}

/**

* java对象 -> json串/json对象

* @return

*/

public String objectToJson() {

// 初始化一个user对象

User user = null;

List<User> userList = this.initUserList(USERLISTSIZE);

user = userList.get(0);

// 转换user对象的配置

JsonConfig jsonConfig = new JsonConfig();

// 过滤对象中不需要转化的属性

jsonConfig.setExcludes(new String[]{"id"});

// 将对象user转化为json串

JSONArray jsonArray = JSONArray.fromObject(user, jsonConfig);

//jsonArray = JSONArray.fromObject(user);

// 转化为json对象

//JSONObject jsonObject = JSONObject.fromObject(user, jsonConfig);

//jsonObject = JSONObject.fromObject(user);

return jsonArray.toString();

}

/**

* List<User> -> json串

* @return

*/

public String listToJson(){

List<User> userList = this.initUserList(USERLISTSIZE);

// list转换为JSON串

JSONArray jsonArray = JSONArray.fromObject(userList);

//System.out.println("List<User> -> json串:" + jsonArray.toString());

return jsonArray.toString();

}

/**

* 对象数组 -> json串

* @return

*/

public String arrayToJson() {

List<User> userList = this.initUserList(USERLISTSIZE);

User[] userArray = new User[userList.size()];

for(int i = 0 ; i < userList.size() ; i++){

userArray[i] = userList.get(i);

}

// user数组转为json串

JSONArray jsonArray = JSONArray.fromObject(userArray);

//System.out.println("对象数组 -> json串:" + jsonArray.toString());

return jsonArray.toString();

}

/**

* 初始化用户

* @param userListSize list 的大小

* @return

*/

private List<User> initUserList(int userListSize) {

User user = null;

List<User> userList = new ArrayList<User>();

for (int i = 0; i < userListSize; i++) {

user = new User();

user.setId(i + 1);

user.setName("name" + (i + 1));

user.setPassword("password" + (i + 1));

user.setRemark("remark" + (i + 1));

userList.add(user);

}

return userList;

}

/**

* 判断JSON串是否以"["开头,是则认定为jsonArray,否则认定为jsonObject

* @param str

* @return

*/

private boolean isArray(String str) {

return str.startsWith("[") ? true : false;

}

public static void main(String[] args) {

TestJson testJson = new TestJson();

System.out.println("直接构建json串:" + testJson.toJsonString());

System.out.println("json串 -> java对象:" + testJson.jsonToObject());

System.out.println("java对象 -> json串:" + testJson.objectToJson());

System.out.println("List<User> -> json串:" + testJson.listToJson());

System.out.println("对象数组 -> json串:" + testJson.arrayToJson());

}

}

 User.java

 

public class User {

private Integer id;

private String name;

private String password;

private String remark;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getRemark() {

return remark;

}

public void setRemark(String remark) {

this.remark = remark;

}

public Integer getId() {

return id;

}

public void setId(Integer id) {

this.id = id;

}

}

 

直接构建json串:[{"id":"1","name":"name1","password":"password1","remark":"remark1"},{"id":"2","name":"name2","password":"password2","remark":"remark2"},{"id":"3","name":"name3","password":"password3","remark":"remark3"}]

json串 -> java对象:user1.id=1,user1.name=name1,user1.password=password1,user1.remark=remark1

user2.id=2,user2.name=name2,user2.password=password2,user2.remark=remark2

user3.id=3,user3.name=name3,user3.password=password3,user3.remark=remark3

java对象 -> json串:[{"name":"name1","password":"password1","remark":"remark1"}]

List<User> -> json串:[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]

对象数组 -> json串:[{"id":1,"name":"name1","password":"password1","remark":"remark1"},{"id":2,"name":"name2","password":"password2","remark":"remark2"},{"id":3,"name":"name3","password":"password3","remark":"remark3"}]

分享到:
评论

相关推荐

    [AB PLC例程源码][MMS_044666]Translation N-A.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    kolesar_3cd_01_0716.pdf

    kolesar_3cd_01_0716

    latchman_01_0108.pdf

    latchman_01_0108

    matlab程序代码项目案例:matlab程序代码项目案例MPC在美国高速公路场景中移动的车辆上的实现.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    pimpinella_3cd_01_0716.pdf

    pimpinella_3cd_01_0716

    petrilla_01_0308.pdf

    petrilla_01_0308

    [AB PLC例程源码][MMS_041452]Speed Controls in Plastic Extrusion.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    强化学习驱动下DeepSeek技术创新及其对AI发展的影响

    内容概要:本文档由张卓老师讲解,重点探讨DeepSeek的技术革新及强化学习对未来AI发展的重要性。文章回顾了AI的历史与发展阶段,详细解析Transformer架构在AI上半场所起到的作用,深入介绍了MoE混合专家以及MLA低秩注意机制等技术特点如何帮助DeepSeek在AI中场建立优势,并探讨了当前强化学习的挑战和边界。文档不仅提及AlphaGo和小游戏等成功案例来说明强化学习的强大力量,还提出了关于未来人工通用智能(AGI)的展望,特别是如何利用强化学习提升现有LLMs的能力和性能。 适用人群:本资料适宜对深度学习感兴趣的研究人员、开发者以及想要深入了解人工智能最新进展的专业人士。 使用场景及目标:通过了解最新的AI技术和前沿概念,在实际工作中能够运用更先进的工具和技术解决问题。同时为那些寻求职业转型或者学术深造的人提供了宝贵的参考。 其他说明:文中提到了许多具体的例子和技术细节,如DeepSeek的技术特色、RL的理论背景等等,有助于加深读者对于现代AI系统的理解和认识。

    有师傅小程序开源版v2.4.14+前端.zip

    有师傅小程序开源版v2.4.14 新增报价短信奉告 优化部分细节

    [AB PLC例程源码][MMS_047333]Motor Sequence Starter with timers to start.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    商城二级三级分销系统(小程序+后台含源码).zip

    商城二级三级分销系统(小程序+后台含源码).zip

    li_3ck_01b_0918.pdf

    li_3ck_01b_0918

    nicholl_3cd_01_0516.pdf

    nicholl_3cd_01_0516

    1995-2022年 网络媒体关注度、报刊媒体关注度与媒体监督相关数据.zip

    媒体关注度是一个衡量公众对某个事件、话题或个体关注程度的重要指标。它主要反映了新闻媒体、社交媒体、博客等对于某一事件、话题或个体的报道和讨论程度。 媒体监督的J-F系数(Janis-Fadner系数)是一种用于测量媒体关注度的指标,特别是用于评估媒体对企业、事件或话题的监督力度。J-F系数基于媒体报道的正面和负面内容来计算,从而为公众、研究者或企业提供一个量化工具,以了解媒体对其关注的方向和强度。 本数据含原始数据、参考文献、代码do文件、最终结果。参考文献中JF系数计算公式。 指标 代码、年份、标题出现该公司的新闻总数、内容出现该公司的新闻总数、正面新闻数全部、中性新闻数全部、负面新闻数全部、正面新闻数原创、中性新闻数原创、负面新闻数原创,媒体监督JF系数。

    [AB PLC例程源码][MMS_040315]Double INC and Double DEC of INT datatype.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_047773]Convert Feet to Millimeters.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    [AB PLC例程源码][MMS_042349]How to read-write data to-from a PLC using OPC in Visual Basic 6.zip

    AB PLC例程代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    matlab程序代码项目案例:matlab程序代码项目案例论文代码 多篇RMPC 鲁棒模型预测控制Paper-code-implementation.zip

    matlab程序代码项目案例 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我!

    lusted_3cd_02_0716.pdf

    lusted_3cd_02_0716

    pepeljugoski_01_0107.pdf

    pepeljugoski_01_0107

Global site tag (gtag.js) - Google Analytics