JSON
来源:互联网 发布:部落冲突男王数据 编辑:程序博客网 时间:2024/06/18 05:58
【1】简介:
在异步应用程序中发送和接收信息时,可以选择以纯文本和 XML 作为数据格式。
为了更好的使用ajax,我们将学习一种有用的数据格式 JavaScript Object Notation(JSON),以及如何使用它更轻松地在应用程序中移动数据和对象。JSON是一种简单的数据交换格式,在某些方面,它的作用与XML非常类似,但比XML更为简单,JSON的语法简化了数据交换的难度,而且提供了一种伪对象的方式。
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串(伪对象)
在异步应用程序中将字符串从 Web 客户端传递给服务器端程序
http://www.360doc.com/content/12/1108/18/6596696_246650000.shtml
【2】JSON两种变量
//创建一个对象
function person() {
var age = 19; // 局部变量
this.name = "tom"; //成员变量
this.show =function(){
alert(age);
}
}
var p = new person();
document.write(p.name);
document.write(p.age);
alert(p.name);
p.show();
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/942308171.png)
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/942320468.png)
【3】JSON创建对象方式
// 创建person 对象
var person ={name:"tom", age: 19};
alert(person.name);
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/b196ac29-96cd-4d9d-a2bb-a98e2177e669.png)
【4】Json对象转化成json文本字符串
@Test
public void fun() {
Person person = new Person();
person.setUsername("耿帅佳");
person.setAge(21);
person.setScore(99.99);
List<String> list = new ArrayList<String>();
list.add("宇宙无敌");
list.add("天下无敌");
list.add("世界无敌");
list.add("我最无敌");
person.setBieming(list);
String json = JSONArray.fromObject(person).toString();
System.out.println(json);
}
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/4fa89b4e-805b-4f82-80e8-d3d0145c5395.png)
注意文本字符串的特点 :
[ { "属性":"值" , "属性":"值" } ]
【5】转换java的List为json对象
@Test
public void fun1(){
List<Object> obj = new ArrayList<Object>();
Person person = new Person();
person.setUsername("耿帅佳");
person.setAge(21);
person.setScore(99.99);
List<String> list = new ArrayList<String>();
list.add("宇宙无敌");
list.add("天下无敌");
list.add("世界无敌");
list.add("我最无敌");
person.setBieming(list);
Person person1 = new Person();
person1.setUsername("贾谭克");
person1.setAge(21);
person1.setScore(99.99);
List<String> list1 = new ArrayList<String>();
list1.add("宇宙无敌");
list1.add("天下无敌");
list1.add("世界无敌");
list1.add("我最无敌");
person1.setBieming(list);
Person person2 = new Person();
person2.setUsername("王玉龙");
person2.setAge(21);
person2.setScore(99.99);
List<String> list2 = new ArrayList<String>();
list2.add("宇宙无敌");
list2.add("天下无敌");
list2.add("世界无敌");
list2.add("我最无敌");
person2.setBieming(list);
obj.add(person);
obj.add(person1);
obj.add(person2);
String json = JSONArray.fromObject(obj).toString();
System.out.println(json);
}
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/b1739558-eae4-4fdb-8668-ba749cefa089.png)
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/dbace839-12fd-4a4f-ba12-4a26e560e1c4.png)
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/360e8d9b-8967-4da3-aa9c-4f14214a754a.png)
解析成字符串的特点 :
[ { "属性":"值" , "属性":"值" } ,{ "属性":"值" , "属性":"值" } ]
例子 :
将数据封装到 javabean 中,使用JSON 解析出来。
假设:数据是从数据库中取出的数据,List<Object>。
![](http://img.blog.csdn.net/20170311165845822)
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/8955b866-a5bd-4a5e-863b-9befdce93422.png)
@Test
public void fun2(){
List<Object> obj = new ArrayList<Object>();
Person person = new Person();
person.setUsername("耿帅佳");
person.setAge(21);
person.setScore(99.99);
List<String> list = new ArrayList<String>();
list.add("宇宙无敌");
list.add("天下无敌");
list.add("世界无敌");
list.add("我最无敌");
person.setBieming(list);
Person person1 = new Person();
person1.setUsername("贾谭克");
person1.setAge(21);
person1.setScore(99.99);
List<String> list1 = new ArrayList<String>();
list1.add("宇宙无敌");
list1.add("天下无敌");
list1.add("世界无敌");
list1.add("我最无敌");
person1.setBieming(list);
Person person2 = new Person();
person2.setUsername("王玉龙");
person2.setAge(21);
person2.setScore(99.99);
List<String> list2 = new ArrayList<String>();
list2.add("宇宙无敌");
list2.add("天下无敌");
list2.add("世界无敌");
list2.add("我最无敌");
person2.setBieming(list);
obj.add(person);
obj.add(person1);
obj.add(person2);
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"bieming","age"});
String json = JSONArray.fromObject(obj,config).toString();
System.out.println(json);
}
注意:
【1】JSONConfig 的使用
在开发中,我们会对不需要的数据,进行删除。
就使用 JsonConfig 的 setExclides(String str) 这个方法来把不需要的参数去掉。
// JsonConfig 设置不要的字段数据
JsonConfig config = new JsonConfig();
config.setExcludes(new String[]{"bieming","age"});
测试:
String json = JSONArray.fromObject(obj,config).toString();、
效果 :
![](file:///G:/%E4%B8%BA%E7%9F%A5%E7%AC%94%E8%AE%B0%E6%95%B0%E6%8D%AE/temp/3ad75db7-3125-43bf-bd77-6c4d4700485b/128/index_files/8955b866-a5bd-4a5e-863b-9befdce93422.png)
我们把 bieming 和 age 去掉了,结果就只有 score 和 username,可以比较上面的结果
【2】实际开发中:针对不同的数据使用不同的JSON 对象
JavaBean 或 Map :JSONObject.fromObject(...).toString();List 或 Array:JSONArray.fromObject(...).toString(); 1 0
- Json
- JSON
- JSON
- JSON
- json
- JSON
- JSON
- json
- Json
- json
- JSON
- json
- json
- JSON
- json
- JSON
- JSON
- json
- Java使用POI导出到Excel
- Ubuntu 安装Docker 常用命令
- 我的软件工程课目标
- 调度算法的介绍及优缺点
- cs231 assignment1--KNN
- JSON
- 数据结构 排序二叉树|圣诞树
- 查看安装的react-native和react版本
- Spring Boot 构建一个RESTful Web服务
- 浅谈图片格式GIF与JPG
- 生活随笔:IT圈子的纯粹
- |算法讨论|强连通分量Tarjan 学习笔记
- 虚拟机超线程性能分析深入浅出
- MAC 升级node.js的快捷方法