java解析和组装json以及一些方法的理解
这是一个json格式的字符串
第一种情况(简单格式)
String result = "{\"name\":\"小明\",\"age\":\"12\"}";
JSONObject json = new JSONObject(result);
System.out.println("name="+json.getString("name")+",age="+json.getString("age"));
运行输出结果
name=小明,age=12
第二种情况(带数组)
String result = "{\"name\":\"小明\",\"age\":\"12\",\"family\":[{\"baba\":\"大明\"},{\"mama\":\"小明的妈妈\"},{\"meimei\":\"小明的妹妹\"}]}";
JSONObject jsonobject = new JSONObject(result);
for(int i=0;i<jsonobject.getJSONArray("family").length();i++){
String family = jsonobject.getJSONArray("family").get(i).toString();
JSONObject jsonfamily = new JSONObject(family);
System.out.println(jsonfamily);
}
运行输出结果
{"baba":"大明"}
{"mama":"小明的妈妈"}
{"meimei":"小明的妹妹"}
json解析就是这些了,如果复杂的话也就是一层一层获取。
json组装
需要组装的格式
{
"status": [
{
"title": "标题",
"contents": [
{
"content": "内容"
},
{
"content": "内容2"
}
],
"status": "状态"
}
],
"nodetow": "第二个",
"nodeone": "第一个"
}
开始组装
JSONObject Msg = new JSONObject();
Msg.put("nodeone", "第一个");
Msg.put("nodetow", "第二个");
JSONArray status = new JSONArray();
JSONObject In = new JSONObject();
In.put("status", "状态");
In.put("title", "标题");
JSONArray contents = new JSONArray();
JSONObject content = new JSONObject();
content.put("content", "内容");
JSONObject content2 = new JSONObject();
content2.put("content", "内容2");
contents.put(content);
contents.put(content2);
status.put(In);
In.put("contents", contents);
Msg.put("status", status);
System.out.println(Msg);
测试组装成功。
json中JSONObject的get()与getString()方法的区别
在使用JSONObject的时候,使用getString()获取值,发现报错了,异常是返回的类型不是一个字符串。后来发现方法用错了,在这里记录一下。并分别说一下它们的区别。
get()根据键获取一个对象,就是说,如果使用这个方法,你获取到的就是一个对象,既然是对象,那么获取到的就有可能是任意类型。
getString()返回一个字符串的值,你得确认你获取的值是一个字符串,才使用这个方法,不然就会抛异常了。
转载:https://blog.csdn.net/woshimeihuo/article/details/50509191
java解析和组装json以及一些方法的理解的更多相关文章
- 【Java_Spring】java解析多层嵌套json字符串
java解析多层嵌套json字符串
- java解析多层嵌套json字符串
java分别解析下面两个json字符串 package jansonDemo; import com.alibaba.fastjson.JSON; import com.alibaba.fastjso ...
- java解析复杂的json字符串
Java解析Json字符串--复杂对象(方法一) { "name": "三班", "students": [ { "age&q ...
- java解析xml的4种经典方法
========================================== xml文件 <?xml version="1.0" encoding="GB2 ...
- QT解析和组装json
json这个小朋友熟悉又陌生,今天给同学们好好讲讲QT是如何使用json的,一句话:简单 1.什么是json? A:json就是个<key,value>字符串 ①一个json对象 {&qu ...
- JAVA解析XML有哪几种方法?并简述各自的优缺点
DOM: 是用与平台和语言无关的方式表示XML文档的官方W3C标准,分析该结构通常需要加载整个文档和构造层次结构,然后才能做任何工作.是基于信息层次的 优点有:由于树在内存中是持久的,因此可以修改它以 ...
- JAVA 解析复杂的json字符串
转自:https://blog.csdn.net/lovelovelovelovelo/article/details/73614473String parameter = { success : 0 ...
- java 中的set方法和get方法的理解
get的意思是获取,set的意思是设置. get方法和set方法是实现类的封装访问的很好的工具. 当类中的变量设为private 时,他的意思就是说,只能通过自身和子类的访问,但是对于别的其他的类来说 ...
- JAVA代码解析String字符串(json格式的)
java解析String字符串(json格式) 需要jar包:json-lib-2.4-jdk15.jar 一. String str = "{\"name\":\&qu ...
随机推荐
- 解决国内安装tensorflow, opencv等安装不成功或下载太慢问题
解决国内安装tensorflow, opencv等安装不成功或下载太慢问题 复制自博客:https://blog.csdn.net/jorg_zhao/article/details/80075293 ...
- windows 快捷键收集
1. 放大镜 windows徽标 + "+“ 2. 直接显示桌面 windows徽标 + D 3. 收起所有窗口 windows徽标 + M 4. 浏览器中恢复之前关闭的页面 Ctrl + ...
- solr 倒排索引(转载)
原文地址:http://blog.csdn.net/chichengit/article/details/9235157 http://blog.csdn.net/njpjsoftdev/articl ...
- shell小命令
小括号的用途 cd ..; ls -l (cd ..; ls -l) 如果加了括号,则当前工作目录不发生改变 shell变量类型 环境变量 可以使用 echo 或者env 例如 env|grep 变 ...
- mysql 导出导入数据库(Mysqldump)备份
使用mysql不熟练啊!!! mysqldump导出数据库,必须以cmd命令行的形式,在Navicat中以新建查询形式使用Mysqldump不好使的.(本来使用Navicat转储SQL,再导入SQL, ...
- webpack4(4.41.2) 打包出现 TypeError this.getResolve is not a function
报错问题: webpack 打包出现 TypeError: this.getResolve is not a function 环境: nodejs 12.13.0 npm 6.12.0 webpac ...
- spark on yarn 动态资源分配报错的解决:org.apache.hadoop.yarn.exceptions.InvalidAuxServiceException: The auxService:spark_shuffle does not exist
组件:cdh5.14.0 spark是自己编译的spark2.1.0-cdh5.14.0 第一步:确认spark-defaults.conf中添加了如下配置: spark.shuffle.servic ...
- Android_(控件)使用ListView显示Android系统中SD卡的文件列表
使用ListView显示Android SD卡中的文件列表 父类布局activity_main.xml,子类布局line.xml(一个文件的单独存放) 运行截图: 程序结构: <?xml ver ...
- Linux用户以及组的添加与删除
查看centos中的用户和用户组 1.用户列表文件:/etc/passwd/ 2.用户组列表文件:/etc/group 3.查看系统中有哪些用户: cut -d : -f 1 /etc/passwd ...
- CodeForces 754D Fedor and coupons ——(k段线段最大交集)
还记得lyf说过k=2的方法,但是推广到k是其他的话有点麻烦.现在这里采取另外一种方法. 先将所有线段按照L进行排序,然后优先队列保存R的值,然后每次用最小的R值,和当前的L来维护答案即可.同时,如果 ...