zoukankan      html  css  js  c++  java
  • 简单JSON



    JSON是什么


    JavaScript Object Notation(JavaScript 对象表示),是一种存储和交换文本信息的语法,它独立程序语言,是轻量级的文本数据交换格式,比XML更小、更快,更易解析,JS原生支持JSON解析



    语法


    包括了{对象}[数组],二者可以互相嵌套

    • 字符串用 “ ” 包裹,其余就不用(数字,布尔值,null)

    • 对象类似于键值对,键不能重复,对象用 { } 包裹,键值之间用 : 间隔,并且各值之间用 , 隔开

    • 数组废话类似于数组了,值之间用 ,间隔

    {
    	"name": "Howl",
    	"nickname": "Howlet"
    }
    
    ["name", "Howl", "Howlshit"]
    
    {
    	"name": "Howl",
    	"nickname": "Howlet",
    	"array": ["firstname", "lastname"],
    	"complex": [{
    		"java": "good"
    	}, {
    		"php": "bad"
    	}]
    }
    


    客户端方法


    • JSON.parse(String str) 把服务器传过来的JSON字符串转化成JavaScript对象
    • JSON.stringify(Object oj) 把JavaScript对象转换成JSON字符串


    JavaBean转化JSON


    Java中并没有内置JSON的解析类所以要借助第三方类库,这里使用阿里巴巴的 FastJson

    FastJson方法

    JSON.toJSONString(Object)						//JavaBean转化成JSON
    JSON.parseObject(jsonObject,Object.class)		//JSON转化成JavaBean
    

    JavaBean

    public class User {
    	
    	private int id;
    	private String email;
    	private String password;
    	
    	public User(int id, String email, String password) {
    		super();
    		this.id = id;
    		this.email = email;
    		this.password = password;
    	}
    
    	//FastJson操作基于Getters和Setters,不能不写,这里为了省地方去掉了
    }
    

    main

    public static void main(String[] args) {
    	
    	//创建JavaBean对象
    	User user1 = new User(20, "1210911104@qq.com", "Howl");
    	
    	//JavaBean对象转成json对象
    	String jsonObject = JSON.toJSONString(user1);
    	System.out.println("JavaBean对象转成json对象"  + "-------------" + jsonObject + "
    ");
    	
    	//json对象转成JavaBean对象
    	User user2 = JSON.parseObject(jsonObject, User.class);
    	System.out.println("json对象转成JavaBean对象"  + "-------------" + user2.getId() + "--" + user2.getEmail() + "--" + user2.getPassword());
    }
    

    输出

    JavaBean对象转成json对象-------------{"email":"1210911104@qq.com","id":20,"password":"Howl"}
    
    json对象转成JavaBean对象-------------20--1210911104@qq.com--Howl
    


    补充

    尴尬的是FastJson经常性爆出漏洞,而且Springboot集成了JackJson,那么就贴下其代码把

    // Springboot自带JackJson
    Object object = new Object();
    ObjectMapper mapper = new ObjectMapper();
    String json =  mapper.writeValueAsString(object);
    Object o = mapper.readValue(json,object.getClass());
    




  • 相关阅读:
    UVaLive 3695 Distant Galaxy (扫描线)
    UVaLive 3695 City Game (扫描线)
    CodeForces 349B Color the Fence (DP)
    UVaLive 3905 Meteor (扫描线)
    UVaLive 3902 Network (无根树转有根树,贪心)
    NodeJS学习笔记 (16)子进程-child_process(ok)
    字符编码笔记:ASCII,Unicode 和 UTF-8
    NodeJS学习笔记 (15)二进制数据-buffer(ok)
    NodeJS学习笔记 (14)URL查询字符串-querystring(ok)
    NodeJS学习笔记 (13)数据加密-crypto(OK)
  • 原文地址:https://www.cnblogs.com/Howlet/p/12032264.html
Copyright © 2011-2022 走看看