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 解析的更多相关文章

  1. Android okHttp网络请求之Json解析

    前言: 前面两篇文章介绍了基于okHttp的post.get请求,以及文件的上传下载,今天主要介绍一下如何和Json解析一起使用?如何才能提高开发效率? okHttp相关文章地址: Android o ...

  2. Json解析工具的选择

    前言 前段时间@寒江不钓同学针对国内Top500和Google Play Top200 Android应用做了全面的分析(具体分析报告见文末的参考资料),其中有涉及到对主流应用使用json框架Gson ...

  3. 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 ...

  4. Android之JSON解析

    做个Android网络编程的同学一定对于JSON解析一点都不陌生,因为现在我们通过手机向服务器请求资源,服务器给我们返回的数据资源一般都是以JSON格式返回,当然还有一些通过XML格式返回,相对JSO ...

  5. Android总结之json解析(FastJson Gson 对比)

    前言: 最近为了统一项目中使用的框架,发现项目中用到了两种json解析框架,他们就是当今非常主流的json解析框架:google的Gson 和阿里巴巴的FastJson,为了废除其中一个所以来个性能和 ...

  6. JSON解析和XML解析对比

    JSON解析和XML解析是较为普遍的两种解析方式,其中JSON解析的市场分额更大.本文系统的分析两种解析方式的区别,为更好地处理数据作准备.由于目前阶段主要是做移动开发,所以本文所描述的JSON解析和 ...

  7. iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson

    相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...

  8. Json解析工具Jackson(使用注解)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 接上一篇文章Json解析工具Jackson(简单应用),jackson在实际应用中给 ...

  9. Json解析工具Jackson(简单应用)

    原文http://blog.csdn.net/nomousewch/article/details/8955796 概述 Jackson库(http://jackson.codehaus.org),是 ...

随机推荐

  1. 当x,y和theta都是向量的时候如何计算损失

    function J = computeCost(X, y, theta) %COMPUTECOST Compute cost for linear regression % J = COMPUTEC ...

  2. C# Command命令(行为型模式)+队列 实现事务,带异步命令重试机制和生命周期

    一.简介 耦合是软件不能抵御变变化的根本性原因,不仅实体对象与实体对象之间有耦合关系(如创建性设计模式存在的原因),对象和行为之间也存在耦合关系. 二.实战 1.常规开发中,我们经常会在控制器中或者M ...

  3. 选择排序——Selection Sort

    基本思想: 在长度为N的无序数组中,第一次遍历n-1个数,找到最小的数值与第一个元素交换:第二次遍历n-2个数,找到最小的数值与第二个元素交换:...第n-1次遍历,找到最小的数值与第n-1个元素交换 ...

  4. Django集成Markdown编辑器【附源码】

    专注内容写作的你一定不要错过markdown 简单介绍 markdown是一种标记语言,通过简单的标记语法可以使普通的文本内容具有一定的格式,使用非常简单,学习成本极低 目前各大Blog平台都已支持m ...

  5. 获取VirtualBox COM对象失败,Unable to start the virtual device

    一.问题 1.将Genymotion和VirtualBox安装好之后,并且已经下载完了virtual device: 2.但是在运行虚拟机的时候却弹出了错误提示:虚拟机电脑控制台——严重错误. 如图: ...

  6. 逆向知识之CS1.6辅助/外挂专题.1.实现CS1.6主武器副武器无限子弹

    逆向知识之CS辅助/外挂专题.1.实现CS主武器副武器无限子弹 PS: 相信大家CS1.6这类的FPS应该玩过.现在我们通过外挂手法.讲解逆向的本质.以及应用. 关于CS1.6的下载.网络百度下载即可 ...

  7. ASP.NET Core 中的 ORM 之 Dapper

    目录 Dapper 简介 使用 Dapper 使用 Dapper Contrib 或其他扩展 引入工作单元 Unit of Work 源代码 参考 Dapper 简介 Dapper是.NET的一款轻量 ...

  8. filezilla通过root账户远程连接管理ubuntu server服务器文件

    前言: 准备重温一下今天在工作中遇见的一个问题,在刚刚安装上的server上测试,做好的文件不是很好传到server项目目录,于是使用了filezilla这个工具,它可以使用ssh来连接,于是乎就引入 ...

  9. Java设计模式学习记录-装饰模式

    前言 装饰模式也是一种结构型模式,主要是目的是相对于类与类之间的继承关系来说,使用装饰模式可以降低耦合度.JDK中有不少地方都使用到了装饰模式,例如Java的各种I/O流,javax.swing包中一 ...

  10. netty源码解解析(4.0)-12 Channel NIO实现:channel初始化

    创建一个channel实例,并把它register到eventLoopGroup中之后,这个channel然后处于inactive状态,仍然是不可用的.只有在bind或connect方法调用成功之后才 ...