恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

java解析json字符串

  • 首页
  • 资讯中心
  • /
  • java解析json字符串

相关资讯

Instagram品牌起号教程:如何从0打造高权重账号? 2026/8/2 1:24:24
【OpenClaw从入门到精通】第91篇:安全与隐私最佳实践:本地部署的防护措施 2026/8/2 1:25:48
AI浪潮来袭!小白程序员必备:掌握大模型,收藏这份职场新机遇! 2026/8/2 17:54:02

最新资讯

字母异位词分组:哈希表与排序/计数法的核心原理与工程实践
Viktor开源项目:OpenAI兼容API与MCP服务器私有化部署指南
拼多多全站推广终极教程
华为OD机试:动态规划解决糖果路径优化问题
30亿Token训练AI游戏开发:从代码生成到原型构建的实战指南
MCP协议:AI应用开发的标准化通信桥梁与万能插座

今日推荐

三步把QQ空间历史说说导出到本地:GetQzonehistory 极简指南
洛谷 P7912:[CSP-J 2021 T4] 小熊的果篮 ← 双向链表
Transformers.js 网页端图像抠图实战:零后端 3 行代码返回透明 PNG

本周热门

Nextcloud 桌面客户端:把同步交给它,你只管改文件
如何将 HTML 转成 Word 文档且格式不丢失?html-to-docx 使用教程
Anki 批量操作卡片完整指南:一次搞定上千张,不再逐张修改

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

java解析json字符串

发布时间:2026/8/25 3:49:20
java解析json字符串 1、首先依赖的jar包pom中引入groupIdcom.huawei/groupId artifactIdtest/artifactId version1.0-SNAPSHOT/version dependencies !-- 引入json依赖 -- dependency groupIdnet.sf.json-lib/groupId artifactIdjson-lib/artifactId version2.4/version classifierjdk15/classifier /dependency dependency groupIdcommons-beanutils/groupId artifactIdcommons-beanutils/artifactId version1.7.0/version /dependency dependency groupIdcommons-collections/groupId artifactIdcommons-collections/artifactId version3.1/version /dependency dependency groupIdcommons-lang/groupId artifactIdcommons-lang/artifactId version2.5/version /dependency dependency groupIdnet.sf.ezmorph/groupId artifactIdezmorph/artifactId version1.0.3/version /dependency /dependencies2、JsonTest类package com.cc;import net.sf.json.JSONArray;import net.sf.json.JSONObject;import java.util.*;public class JsonTest {public static void main(String[] args) { //生成json字符串 generate(); //待解析字符串 String json {name:zxc,sex:男,job:java}; //解析简单json字符串的三种方法 easy(json); //待解析稍微复杂json字符串 String json2 {name:zxc,sex:男,job:java,data:{chinese:100,math:100,english:100}}; complex(json2); //待解数组形式json字符串 String json3 [{name:z,sex:男,job:java},{name:x,sex:男,job:java},{name:c,sex:男,job:java}]; //解析数组形式字符串 array(json3); //待解析复杂json字符串 String json4 {name:zxc,sex:男,job:java,cup:[{redCup:1,rate:{hg:99%,bhg:98%}},{redCup:2,rate:{hg:99%,bhg:98%}}]}; verycomplex(json4); } /** * 解析稍微复杂json字符串 * param json */ public static void complex(String json){ JSONObject jsonObjectJSONObject.fromObject(json); People people(People)JSONObject.toBean(jsonObject, People.class); System.out.println(解析稍微复杂json字符串:); System.out.println(people.getName()); System.out.println(people.getData().getChinese()); //运行结果: //解析稍微复杂json字符串: //zxc //100 } /** * 解析简单json字符串 * param json */ public static void easy(String json){ //映射实体类解析推荐 JSONObject jsonObject JSONObject.fromObject(json); People people (People) JSONObject.toBean(jsonObject, People.class); System.out.println(根据实体类解析简单json字符串 namepeople.getName() sexpeople.getSex() jobpeople.getJob()); //运行结果根据实体类解析简单json字符串 namezxc sex男 jobjava //不映射实体类根据元素取值 JSONObject jsonOb JSONObject.fromObject(json); String name jsonOb.getString(name); String sex jsonOb.getString(sex); String job jsonOb.getString(job); System.out.println(不映射实体类根据元素取值解析json简单字符串namename sexsex jobjob); //运行结果不映射实体类根据元素取值解析json简单字符串namezxc sex男 jobjava //用迭代器迭代输出 JSONObject jsonObject3 JSONObject.fromObject(json); Iterator keys jsonObject3.keys(); String key null; Object value null; System.out.println(迭代解析json简单字符串); while(keys.hasNext()){ key (String) keys.next(); value jsonObject3.get(key); System.out.println(key:key value:value.toString()); } //运行结果: //迭代解析json简单字符串 //key:sex value:男 //key:name value:zxc //key:job value:java MapString, Object map new HashMapString, Object(); map JSONObject.fromObject(json); System.out.println(map方式解析json简单字符串); System.out.println(map.get(name)); System.out.println(map.get(sex)); System.out.println(map.get(job)); //运行结果: //map方式解析json简单字符串 //zxc //男 //java } /** * 解析复杂json字符串 * param json */ public static void verycomplex(String json){ JSONObject jsonObjectJSONObject.fromObject(json); MapString, Class map new HashMapString, Class(); map.put(cup, Cup.class); People people (People) JSONObject.toBean(jsonObject, People.class, map); //这种方式转成对象people.getCup().get(0).getRedCup()取值时候会报错“ net.sf.ezmorph.bean.MorphDynaBean cannotbe cast to Cup” 所以写了上面三行代码代替这段 //People people(People)JSONObject.toBean(jsonObject, People.class); System.out.println(解析复杂json字符串:); System.out.println(取值people.getName()); System.out.println(取值people.getCup().get(0).getRedCup()); System.out.println(cup长度people.getCup().size()); System.out.println(取值people.getCup().get(0).getRate().getBhg()); //运行结果 //解析复杂json字符串: // 取值zxc // 取值1 // cup长度2 // 取值98% } /** * 解析json数组形式字符串 * param json */ public static void array(String json){ JSONArray jsonArray JSONArray.fromObject(json);// 首先把字符串转成 JSONArray 对象 People[] peo new People[3]; ListPeople list new ArrayListPeople(); //通过实体类 解析成数组 peo (People[]) JSONArray.toArray(jsonArray, People.class);//转换成数组 System.out.println(通过实体类 解析json数组成数组通过下标获取元素peo[0].getName()); //运行结果通过实体类 解析json数组成数组通过下标获取元素z //通过实体类 解析成list(推荐) list (ListPeople) JSONArray.toList(jsonArray, People.class);//转换成列表 for(People p : list){ System.out.println(通过实体类 解析json数组成listp.getName()); } //运行结果 //通过实体类 解析json数组成listz //通过实体类 解析json数组成listx //通过实体类 解析json数组成listc //不映射实体类 直接解析数组形式json字符串 if(jsonArray.size()0){ System.out.println(不映射实体类 直接解析数组形式json字符串:); for(int i0;ijsonArray.size();i){ JSONObject job jsonArray.getJSONObject(i); // 遍历 jsonarray 数组把每一个对象转成 json 对象 System.out.println(job.get(name) job.get(sex) job.get(job)) ; // 得到 每个对象中的属性值 } } //运行结果 //不映射实体类 直接解析数组形式json字符串: // z 男 java // x 男 java // c 男 java } /** * 根据实体生成字符串 */ public static void generate() { //生成简单json字符串 People peo new People(); peo.setJob(java); peo.setName(zxc); peo.setSex(男); String jsonStr JSONObject.fromObject(peo).toString(); System.out.println(根据实体生成json字符串 jsonStr); //运行结果:根据实体生成json字符串 {cup:[],sex:男,name:zxc,data:null,job:java} //通过数组或者列表生成Json字符串 People peo2 new People(); People peo3 new People(); peo2.setName(zxc1); peo2.setSex(男1); peo2.setJob(java1); peo3.setName(zxc1); peo3.setSex(男1); peo3.setJob(java1); People[] pe new People[2]; ListPeople list new ArrayListPeople(); pe[0] peo2; pe[1] peo3; list.add(peo2); list.add(peo3); String jsonStr1 JSONArray.fromObject(pe).toString(); String jsonStr2 JSONArray.fromObject(list).toString(); System.out.println(通过数组生成Json字符串jsonStr1); System.out.println(通过列表生成Json字符串jsonStr2); //Map生成Json字符串 MapString, Object map new HashMapString, Object(); map.put(name, zxc); map.put(sex, 男); map.put(job, java); String jsonStr3 JSONObject.fromObject(map).toString(); System.out.println(map形式数据生成json字符串jsonStr3); }}3、Peope类package com.cc;import java.util.List;public class People {private String Job; private String Name; private String Sex; private Data data; private ListCup cup; public String getName() { return Name; } public void setName(String name) { Name name; } public String getSex() { return Sex; } public void setSex(String sex) { Sex sex; } public String getJob() { return Job; } public void setJob(String job) { Job job; } public Data getData() { return data; } public void setData(Data data) { this.data data; } public ListCup getCup() { return cup; } public void setCup(ListCup cup) { this.cup cup; }}4、Cup类package com.cc;public class Cup {private String redCup;private Rate rate;public String getRedCup() { return redCup; } public void setRedCup(String redCup) { this.redCup redCup; } public Rate getRate() { return rate; } public void setRate(Rate rate) { this.rate rate; }}5、Data类package com.cc;public class Data {private String chinese; private String math; private String english; public String getChinese() { return chinese; } public void setChinese(String chinese) { this.chinese chinese; } public String getMath() { return math; } public void setMath(String math) { this.math math; } public String getEnglish() { return english; } public void setEnglish(String english) { this.english english; }}6、Rate类package com.cc;public class Rate {private String hg;private String bhg;public String getHg() { return hg; } public void setHg(String hg) { this.hg hg; } public String getBhg() { return bhg; } public void setBhg(String bhg) { this.bhg bhg; }}

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号