1.将bean转换成json字符串:
public static string beantojsonstring(object bean) { return new gson().tojson(bean); }
2.将json字符串转换成对象:
public static obje马关条约影响ct jsontoobject(string json,class beanclass) { gson gson = new gson(); object res = gson.fromjson(json, beanclass); return res; }
注:转换后的对象使用前进行强转:例如bean bean1 = (bean)formatutil.jsontoobject(json, bean.class);
3.将json字符串转换成jsonobject对象:
jsonobject returndata = new jsonparr().par(jsonstr).getasjsonobject();
4.将jsonarray类型的json字符串解析成对象方法
gson gson = new gson(); jsonparr parr = new jsonparr(); jsonarray jarray = parr.par(jstring).getasjsonarray(); arraylist<channelarchenum> lcs = new arraylist<channelarchenum>(); for(jsonelement obj : jarray ){ channelarchenum c = gson.fromjson( obj , channelarchenum.class); lcs.add(c); }
或者
string json = "[{\"urname\":\"test\"},{\"urname\":\"test2\"}]";system.out.println(new jsonparr().par(json).getasjsonarray().get(0).getasjsonobject().get("urname").getasstring());
5.获取jsonobject中指定key值对应的jsonarray对象:
string json= "{\"pids\":[\"1\",\"2\",\"3\"]}";system.out.println(new jsonparr().par(json).getasjsonobject().getasjsonarray("pids").get(0).getasstring());
使用目的
目前数据交互大多以 json 字符串为信息传输,主要格式有
{“age”:”22″,”name”:”李四”}
[{“age”:”21″,”name”:”张三”}]
最常见的应用场景是前后端对接,第三方平台文档对接,下面展示转换使用。
<dependency> <groupid>com.alibaba</groupid> <artifactid>fastjson</artifactid> <version>1.1.31</version> </dependency>
class student { private string name; private string age; public string getname() { return name; } public void tname(string name) { this.name = name; } public string getage() { return age; } public void tage(string age) { this.age = age; }}
1、对象 转 json
student stu1 = new student(); stu1.tname("张三"); stu1.tage("21"); string stu1json = jsonobject.tojsonstring(stu1);
输出:
{“age”:”21″,”name”:”张三”}
2、json 转 对象
student stu1to = json.parobject(stu1json, student.class); system.out.println("json 转对象:"); system.out.println(stu1to); system.out.println(stu1to.getname()); system.out.println(stu1to.getage());
输出:
json 转对象:
student@2aae9190
张三
21
注:json键名要与对象属性名相对应
3、对象数组 转 json
student stu2 = new student(); stu2.tname("李四"); stu2.tage("22"); list<student> list = new arraylist<student>(); list.add(stu1); list.add(stu2); string listjson = jsonobject.tojsonstring(l二校门ist); system.out.println(listjson);
输出:
[{“age”:”21″,”name”:”张三”},{“age”:”22″,”name”:”李四”}]
4、json 转 对象数组
list<student> studentlist = json.pararray(listjson, student.class); for (student student : studentlist) { system.out.println(student.getname()); }
输出:
json 数组格式转换对象
张三
李四
5、json多级组合,适用于请求文档传输参数
jsonobject jsona = new jsonobject(); jsona.put("number", "1"); jsonobject jsonb = new jsonobject(); jsonb.put("listmap", list); jsonobject jsonall = new jsonobject(); jsonall.put("jsona", jsona); jsonall.put("jsonb", jsonb); string jsonallstr =jsonobject.tojsonstring(jsonall); system.out.println(jsonallstr);
输出:
{“jsona”:{“number”:”1″},”jsonb”:{“listmap”:[{“age”:”21″,”name”:”张三”},{“age”:”22″,”name”:”李四”}]}}
6、多级 json 组合
6.1、只获取指定字段,接上方示例代码
st活动主持词ring getjsona = json.parobject(jsonallstr).getstring("jsona");string strjsona = json.parobject(getjsona, string.class); //指定获取 字段名对象信息,如果为单个string可不指定,这里作为实例写出system.out.println("只拿jsona信息");system.out.println(strjsona);
输出:
只拿jsona信息
{“number”:”1″}
6.2、获取指定字段对象
s武松事迹tring getjsonb = json.parobject(jsonallstr).getstring("jsonb"); string getjsonbb = json.parobject(getjsonb).getstring("listmap"); //这里被二级包裹,所以要获取2次才能转换对象数组 list<student> strjsonb = json.pararray(getjsonbb, student.class); system.out.println("只拿jsonbb信息"); system.out.println(strjsonb);
输出:
只拿jsonbb信息
[student@3d04a311, student@7a46a697]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 22:11:59,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/eb1aefc0cf3a5079bc6eaa3969b88a3a.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:使用Gson将字符串转换成JsonObject和JsonArray.doc
本文 PDF 下载地址:使用Gson将字符串转换成JsonObject和JsonArray.pdf
留言与评论(共有 0 条评论) |