zoukankan      html  css  js  c++  java
  • Javascript基础系列(十五)-JSON

    一种数据格式,而非编程语言

    {
    	'name': 'json',
    	'age':15
    	'v' : [
    		'simpleValue',
    		'object',
    		'array'
    	]
    }
    

    语法

    包含三种数据类型的值

    • 简单值: 字符串类型、数字类型、布尔值、null
    • 对象: 表示{} 复杂数据对象
    • 数组: 表示[] 可以是简单值的集合,也可以是对象的集合,还可以是数组的集合

    解析与序列化

    JSON对象

    • JSON.stringify() 将对象转成json字符串
    • JSON.parse() 将json字符串序列化成对象

    序列化选项

    JSON.stringify(obj, [attr1, attr2...]); 过滤出某些属性 
    JSON.stringify(obj, function(key, value) {
    	// 按一定逻辑规则渲染原对象的值
    });
    JSON.stringify(obj, null, 4); // 第三个参数缩进字符
    可以重写对象的toJSON方法
    
    • toJSON()可以作为函数过滤器的补充,因此理解序列化的内部顺序十分重要。
    • 假设把一个对象传入 JSON.stringify(),序列化该对象的顺序如下
    • (1) 如果存在 toJSON()方法而且能通过它取得有效的值,则调用该方法。否则,返回对象本身。
    • (2) 如果提供了第二个参数,应用这个函数过滤器。传入函数过滤器的值是第(1)步返回的值。
    • (3) 对第(2)步返回的每个值进行相应的序列化。
    • (4) 如果提供了第三个参数,执行相应的格式化。

    JSON.parse() 同样具有第二个参数

    JSON.parse(jsonText, function(key, value) {
    	// xxx
    });
    

    JAVA语法下Fastjson 可以参考
    https://www.cnblogs.com/jajian/p/10051901.html

  • 相关阅读:
    TestPaste text
    WPF XML序列化保存数据 支持Datagrid 显示/编辑/添加/删除数据
    C# WPF xml序列化 反序列化
    C# show FTP Download/Upload progress
    BAT for 循环
    C# httpRequest Soap请求
    day6 os模块
    day6 random随机数模块
    day6 time和datetime模块
    day5 常用模块json和pickle
  • 原文地址:https://www.cnblogs.com/pengsn/p/12742946.html
Copyright © 2011-2022 走看看