[JSON_01] JSON 解析
0. 说明
介绍 && 测试 JSON
1. 介绍
XML 指可扩展标记语言(eXtensible Markup Language)。
XML 被设计用来传输和存储数据。
JSON: JavaScript Object Notation(JavaScript 对象表示法)
JSON 是轻量级的文本数据交换格式
JSON 是存储和交换文本信息的语法。类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 对象由 名称/值对组成 名称和值之间用冒号 : 隔开
名称必须用双引号 " " 包含起来
值可以是任意 JavaScript 数据类型,字符串,布尔,数字 ,数组甚至是对象
不同的名称/值对之间用 逗号 , 隔开
示例
{"name":"Tom","age":}
2. 测试 JSON
【2.1 JSON 文本示例]】
{"reviewPics":null,"extInfoList":null,"expenseList":null,"reviewIndexes":[],"scoreList":[{"score":,"title":"环境","desc":""},{"score":,"title":"服务","desc":""},{"score":,"title":"口味","desc":""}]}
【2.2 添加 Maven 依赖】
<!-- fastjson 依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.</version>
</dependency>
【2.3 TestJson.java】
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.junit.Test; public class TestJson { @Test
public void testJson() { // JSON 文本 {"name":"Tom","age":25}
String text = "{\"name\":\"Tom\",\"age\":25}"; // 将 JSON 转化为 JSONObject 格式
JSONObject jo = JSON.parseObject(text); // 通过 Key 获取 Value
Object name = jo.get("name");
Object age = jo.get("age");
System.out.println(name + ":" + age);
} @Test
public void testJsonArray() {
// JSON 文本 {"person":[{"name":"Tomas","friends":["John","Jim"],"age":18},{"name":"Tom","friends":["Amy","Alice"],"age":28}]}
String line = "{\"person\":[{\"name\":\"Tomas\",\"friends\":[\"John\",\"Jim\"],\"age\":18},{\"name\":\"Tom\",\"friends\":[\"Amy\",\"Alice\"],\"age\":28}]}"; // 将 JSON 转化为 JSONObject 格式
JSONObject jo = JSON.parseObject(line); // 通过 Key 获取 Value
JSONArray jsonArray = jo.getJSONArray("person"); for (Object object : jsonArray) {
// 将 JSON 转化为 JSONObject 格式
JSONObject jo2 = JSON.parseObject(object.toString());
if (jo2.get("name").toString().equals("Tom")) {
JSONArray jsonArray2 = jo2.getJSONArray("friends");
for (Object object2 : jsonArray2) {
System.out.println(object2);
}
}
}
}
}
[JSON_01] JSON 解析的更多相关文章
- Android okHttp网络请求之Json解析
前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...
- Json解析工具的选择
前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...
- iOS json 解析遇到error: Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed.
Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 38 ...
- Android之JSON解析
做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...
- Android总结之json解析(FastJson Gson 对比)
前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...
- JSON解析和XML解析对比
JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...
- iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson
相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...
- Json解析工具Jackson(使用注解)
原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...
- Json解析工具Jackson(简单应用)
原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...
随机推荐
- error: device unauthorized —— android studio 链接不上虚拟机
问题原因: 以前用Eclipse开发的时候在环境变量里配置了ANDRIOD_SDK_HOME. 解决方法: 将电脑环境变量中的ANDRIOD_SDK_HOME删除,重新运行adb devices,手机 ...
- C#效率优化(3)-- 使用foreach时避免装箱
Introduction: ※本文不是在描述旧版本Unity中mono编译器导致的foreach语句额外装箱错误 博主是一名Unity 3D游戏开发者,游戏使用C#+lua开发,最近在优化C#代码时, ...
- 【jQuery源码】整体架构
jQuery源码可以精简为以下内容: 方框上面的代码根据Jq注释我们可以知道是对AMD规范的支持. jQuery整体上被包裹在一个匿名函数中,这个匿名函数再作为另一个匿名函数的参数被传入,形参fact ...
- 初学javaScript推荐工具
对于刚开始学习js的同学,强烈推荐直接使用chrome developer mode,超级方便. 随便打开一个网页,开启开发者模式即可写js代码,不用新建html和js文件即可看到自己写的js代码的结 ...
- 手撕coreML之yolov2 object detection物体检测(含源代码)
一些闲话: 前面我有篇博客 https://www.cnblogs.com/riddick/p/10434339.html ,大致说了下如何将pytorch训练的.pth模型转换为mlmodel,部署 ...
- 鸟哥的Linux私房菜:基础学习篇 —— 第六章笔记
1.下面这些就是比较特殊的目录,得要用力的记下来才行: . 代表此层目录 .. 代表上一层目录 - 代表前一个工作目录 ~ 代表“目前使用者身份”所在的主文件夹 ~account 代表 account ...
- 线段树(segment tree)
线段树是一种二叉搜索树,它的每一个结点对应着一个区间[L, R],叶子结点对应的区间就是一个单位区间,即L == R.对于一个非叶子结点[L, R],它的左儿子所表示的区间是[L, (L +R)/2] ...
- springboot使用遇到问题:Class “model.Address” is listed in the persistence.xml file but not mapped
报错如下: 解决如下: 这是一个Eclipse的怪癖.我最近在创建一个禁用了JPA库配置的新JPA项目时遇到了这个问题,但是在我通过Eclipse New JPA Entity向导创建实体之前没有手动 ...
- 【Core】创建简单的Core MVC项目
创建项目: 首先:打开vs选中新建项目- >选中.NET Core - >ASP.NET Core Web应用程序: 然后:在选择web应用程序,注意上面要选中.net Core 别选错了 ...
- MySQL中表名重命名
第一种办法:##修改表名, TO 或AS都可以,也以省略掉 ## ALTER TABLE 表名 RENAME [TO|AS] 新表名 ALTER TABLE user10 RENAME TO user ...