×

数据基础知识:了解JSON数据格式

作者:Terry2023.05.15来源:Web前端之家浏览:1877评论:0
关键词:数组

数据基础知识:了解JSON数据格式。

JSON语法

JSON的全称是”JavaScript Object Notation”,意思是javascript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

JSON的格式

JSON 数据的书写格式是键(名称)/值对。

JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对包括字段名称(在双引号中),后面写一个冒号,然后是值。

JSON 值可以是:字符串(在双引号中)、数组(在中括号中)、数字(整数或浮点数)、逻辑值(true 或 false)、对象(在大括号中)、 null。

JSON结构

JSON结构有两种结构,就是对象和数组。通过这两种结构可以表示各种复杂的结构。

{“province”: “Shanxi”} 可以理解为是一个包含province为Shanxi的对象,

[“Shanxi”,“Shandong”]这是一个包含两个元素的数组

而 [{“province”: “Shanxi”},{“province”: “Shandong”}] 就表示包含两个对象的数组。

当然了,你也可以使用 {“province”:[“Shanxi”,“Shandong”]} 来简化上面的JSON,这是一个拥有一个name数组的对象。

注意:(1)JSON键必须用双引号括起来,否则会报错(2)最后一个属性不能加逗号.我们可以通过JSON校验工具来检查你的JSON数据格式是否正确。比如:http://www.json.cn/、http://www.bejson.com/等等。

JSON与JS对象的关系

(注意:这里是js的语法)

JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。平时说的JSON对象,是JSON格式的JS对象或是符合JSON数据结构要求的JS对象。

JSON和JS对象互转

要实现从对象转换为 JSON 字符串,使用 JSON.stringify() 方法:

var json = JSON.stringify({province:“shanxi”,cify:“jin”});

结果:

{“province”:“shanxi”,“city”:“jin”}

要实现从 JSON 转换为对象,使用 JSON.parse() 方法:

var obj = JSON.parse(‘{“province”:“shanxi”,“city”:“jin”}’);

结果:

Object {province:“shanxi”,city:“jin”}

举个例子:

根据要求自己编写一个json串。

data是一个JSON对象,它具有3个属性:code,msg,result,其中code和msg的值都是字符串,result的值是一个对象数组。result包含了一个对象,这个对象具有3个属性userid,uname,email。

{
    "code”:"0”,

    "msg”:"显示信息”,

    "result”:[

     {

     "userid”:"1”,

     "uname”:"zhsngsan”,

     "email”:"zhang@123.com”

     }

     ]

}

JSON解析

我们要学习三方的解析架包。

json-lib

需要很多依赖包:

commons-beanutils-1.8.3.jar commons-collections-3.2.1.jar commons-lang-2.6.jar

commons-logging-1.1.1.jar ezmorph-1.0.6.jar json-lib-2.4-jdk15.jar

1.添加的依赖
commons-beanutils-1.8.3.jar     commons-collections-3.2.1.jar     commons-lang-2.6.jar
commons-logging-1.1.1.jar       ezmorph-1.0.6.jar                 json-lib-2.4-jdk15.jar
2.具体实现:
public class TestDemo {
	//@Test
	public void test1(){
		//json就是字符串   {}代表对象  []代表数组
		String ss1 = "{\"name\":\"qianfeng\",\"email\":\"22@22\",\"birthday\":\"10-10\"}";
		String ss2 = "[{\"name\":\"qianfeng\",\"email\":\"22@22\",\"birthday\":\"10-10\"},{\"name\":\"qianfeng\",\"email\":\"22@22\",\"birthday\":\"10-10\"}]";
		String ss3 = "{\"name\":\"qianfeng\",\"email\":\"22@22\",\"birthday\":[{\"year\":\"1990\",\"month\":\"10-10\"}]}";
	}
	
	//@Test
	public void test2(){
		Book book = new Book();
		book.setId("92837492834");
		book.setName("好书");
		book.setPrice(100000);
		book.setCategory("艺术");
		book.setDescription("赶紧买吧");
		book.setPnum(2000);
		
		//把对象转成json对象
		JSONObject jsonObject = JSONObject.fromObject(book);
		System.out.println(jsonObject);
	}
	
	@Test
	public void test3()
	{
		List<Book> list =new ArrayList<Book>();
		
		Book book = new Book();
		book.setId("92837492834");
		book.setName("好书");
		book.setPrice(100000);
		book.setCategory("艺术");
		book.setDescription("赶紧买吧");
		book.setPnum(2000);
		
		Book book2 = new Book();
		book2.setId("928374928342");
		book2.setName("2好书");
		book2.setPrice(2100000);
		book2.setCategory("2艺术");
		book2.setDescription("2赶紧买吧");
		book2.setPnum(3000);
		
	   list.add(book);
	   list.add(book2);
	   
	   //把list转成json数组
	   JSONArray jsonArray = JSONArray.fromObject(list);
	   System.out.println(jsonArray.toString());
	}
	public class Book {
	
	private String id;
	private String name;
	private double price;
	private int pnum;
	private String category;
	private String description;
	
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getPrice() {
		return price;
	}
	public void setPrice(double price) {
		this.price = price;
	}
	public int getPnum() {
		return pnum;
	}
	public void setPnum(int pnum) {
		this.pnum = pnum;
	}
	public String getCategory() {
		return category;
	}
	public void setCategory(String category) {
		this.category = category;
	}
	public String getDescription() {
		return description;
	}
	public void setDescription(String description) {
		this.description = description;
	}
}


您的支持是我们创作的动力!
温馨提示:本文作者系Terry ,经Web前端之家编辑修改或补充,转载请注明出处和本文链接:
https://jiangweishan.com/article/shuzu20230515.html

网友评论文明上网理性发言 已有0人参与

发表评论: