一、简介
二、json两种构造结构
三、js解析JSON
1、JSON2解析JSON
2.用eval()方法把JSON字符串转化成JSON对象.
3.使用JSON2中的JSON对象的parser()方法解析JSON字符串
4. 使用JSON2中的JSON对象的stringify ()方法把JSON对象转换成字符串
5、案例
四、Java解析JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999(信息标准化和通信系统(由netscpace公司Brendan Eich提出, 本标准在1999年11月被ECMA General Assembly接受采纳为ECMA-262第3版。))的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言
{name:”小花”}对象
[“aa”,”bb”]
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。 {name:‘aa’}
示例:
var ob={name:”小花”,age:23,address:”nc”}
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。 var arr=[“aa”,”bb”,”cc”]
值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
var arr=[“小花”,”小白”];
var arr1=[];
字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
字符串(string)与C或者Java的字符串非常相似。
数值(number)也与C或者Java的数值非常相似。除去未曾使用的八进制与十六进制格式。除去一些编码细节。
1.访问JSON对象中的成员我们可以如下使用:
test1.js
把JSON字符串转化成JSON对象,可以使用eval()函数。
test2.js
<%--
Created by IntelliJ IDEA.
User: 杪&秋
Date: 2022/12/30
Time: 19:12
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
json
在java程序中通常会用到JSON格式作为格式化数据传输,json-lib-2.3是一个转换数据的工具。下载地址是:http://sourceforge.net/projects/json-lib/files/ 。在其网站上可以下载源代码json-lib-2.3-jdk15-sources.jar包、json-lib-2.3-jdk15-javadoc.jar文档包、json-lib-2.3-jdk15.jar核心包。将其下载下来放入项目的classpath下。在使用json-lib-2.3包时还要其它的依赖包:如下图:
package com.iotek.json;
import com.iotek.entity.Student;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
/**
* @Author:
* @CreateTime: 2022-12-30 20:11
*/
public class JsonTest {
@Test
public void json1(){
JSONObject jsonObject = new JSONObject();
jsonObject.put("name","祖尔");
jsonObject.put("age",34);
jsonObject.put("address","上海");
System.out.println(jsonObject.toString());//将json转化为json格式的字符串
/*结果:{"name":"祖尔","age":34,"address":"上海"}*/
}
@Test
public void json2(){
/*数组方式*/
JSONArray jsonArray = new JSONArray();
jsonArray.add(new Student(1,"小黑1","男",23,99));
jsonArray.add(new Student(2,"小黑2","男",23,99));
jsonArray.add(new Student(3,"小黑3","男",23,99));
jsonArray.add(new Student(4,"小黑4","男",23,99));
System.out.println(jsonArray);
/*结果:[{"age":23,"id":1,"name":"小黑1","score":99,"sex":"男"},{"age":23,"id":2,"name":"小黑2","score":99,"sex":"男"},{"age":23,"id":3,"name":"小黑3","score":99,"sex":"男"},{"age":23,"id":4,"name":"小黑4","score":99,"sex":"男"}]*/
}
@Test
public void json3(){
Map map = new HashMap<>();
Student stu1 = new Student(1,"小黑1","男",23,99);
map.put("studnet",stu1);
JSONArray jsonArray = new JSONArray();
jsonArray.add(map);
System.out.println(jsonArray);
/*结果:[{"studnet":{"age":23,"id":1,"name":"小黑1","score":99,"sex":"男"}}]*/
}
}