JSON的简介和在Java中的使用
来源:互联网 发布:剑三叽太捏脸数据 编辑:程序博客网 时间:2024/05/22 02:17
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于人阅读和编写。同时也易于机器解析和生成。 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。 这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构:
- “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
- 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
值(value)可以是双引号括起来的字符串(string)、数值(number)、true
、false
、 null
、对象(object)或者数组(array)。这些结构可以嵌套。
一个简单的JSON实例
{ "name": "hello", "age": 12, "isNonProfit": true, "address": { "city": "浙江杭州", "country": "中国" }, "links": [ { "name": "Google", "url": "http://www.google.com" }, { "name": "Baidu", "url": "http://www.baidu.com" } ]}
一、在JavaScript中
1.常见的两种结构:对象和数组
2.数据访问
在js对象中可以利用"."操作符直接取名称对应的值,而数组的索引是从零开始
3.在数据传输中,json是以字符串的形式传递的,而JS操作的是JSON对象,所以,需要JSON对象和JSON字符串之间的相互转换
json字符串转换为json对象
json对象转换为json字符串
二、在Java中的使用
先在maven中引入jackson
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>cn.tedu.ajax</groupId><artifactId>ajax</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.2.3</version></dependency></dependencies></project>
定义一个Student类
public class Student implements Serializable {private static final long serialVersionUID = 1L;private String name;private int age;private String address;private String email;public Student() {}public Student(String name, int age, String address, String email) {super();this.name = name;this.age = age;this.address = address;this.email = email;}//Getters,Setters和toString()方法省略}
1.json字符串转换为Java对象
@Testpublic void test1() throws Exception{String json = "{\"name\":\"Jack\",\"age\":18,\"address\":\"China\"}";System.out.println(json);ObjectMapper mapper = new ObjectMapper();//Student必须有无参构造Student student = mapper.readValue(json, Student.class);System.out.println(student);}
结果:
2.json对象转化为字符串
@Testpublic void test2() throws JsonProcessingException{Student student = new Student("Tom", 23, "USA","tom@123.com");ObjectMapper mapper = new ObjectMapper();String str = mapper.writeValueAsString(student);System.out.println(str);}结果:
参考:http://www.json.org/
- JSON的简介和在Java中的使用
- json在java和js中的使用
- json简介及在Java中的应用
- Json在java中的使用
- json在java中的使用
- json 在Java中的使用
- json在java中的使用
- JSON 在java中的使用Json
- 浅谈Json在java中的使用
- 浅谈Json在java中的使用
- json教程及json在Java中的使用
- JSON在Javascript中的使用(eval和JSON.parse的区别)
- python json和java json的使用
- json的使用简介
- 简介JSON在PHP中的应用
- Java 的安装和Java Applet在浏览器中的使用
- 在java中使用json的方法
- Gradle简介和安装和在Eclipse中的使用
- 数据结构之第一章 引论 及 课后题答案
- 知识学习——Hadoop OutputFormat
- LeetCode Roman to Integer
- com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
- 串.c
- JSON的简介和在Java中的使用
- QSerialPort,QSerialPortInfo使用
- Rstudio中配置环境实现动态报告
- Opencv: pointPolygonTest函数使用
- 泛型依赖注入
- 算法竞赛入门经典几个有意思的问题
- 面向对象加强1
- 【2011集训队出题】happiness
- 使用nutz进行简单的增删查改操作