JSON

Posted 月下大庚角

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON相关的知识,希望对你有一定的参考价值。

认识JSON

JSONJavaScript Object Notation,javascript对象表示法)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。

JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json

声明和使用

// key必须使用双引号包含
// value,如果是字符串,也必须用双引号包含;对象使单引号包含
var a = {"name":"zs","age":20};

alert(a.name + "  " + a.age);

var b = {
    "name": "ls",
    "hobby": [‘看书‘,‘写字‘],
    "friends": {"boy":"ww","gril":"zl"}
};

alert(b.name + " " + b.hobby[1] + " " + b.friends.boy);

JSON的本质: JSON 是 JS 对象 的字符串表示法,它使用文本表示一个 JS 对象的信息,本质是一个字符串。

var obj = {a:"hello", b:"world"};    // js对象

var obj = {"a":"hello", "b":"world"};  // json格式的js对象,也可以叫json对象

var str = ‘{"a":"hello", "b":"world"}‘;  // json,也叫json格式的字符串 必须外层单引号,内存双引号

var str = "{‘a‘:‘Hello‘, ‘b‘:‘world‘}";  //错误,不能这样写,会影响到其他程序的执行

php数组转JSON格式的字符串

//只要使用了echo进行输出,那么输出的内容就一定是字符串

//索引数组,会被转为 数组字符串
$arr = [‘aaa‘, ‘bbb‘, ‘ccc‘];
echo json_encode($arr); // ‘["aaa","bbb","ccc"]‘

//关联数组, 会被转为json对象的字符串
$info = [‘id‘=>10001, ‘name‘=>‘zs‘, ‘age‘=>20];
echo json_encode($info); // ‘{"id":10001,"name":"zs","age":20}‘

//二维数组,会被转为一维数组,里面每个单元都是json对象
$list = [
    [‘id‘=>10001, ‘name‘=>‘zs‘, ‘age‘=>20],
    [‘id‘=>10002, ‘name‘=>‘ls‘, ‘age‘=>21],
    [‘id‘=>10003, ‘name‘=>‘ww‘, ‘age‘=>19]
];
echo json_encode($list); // ‘[{"id":10001,"name":"zs","age":20},{"id":10002,"name":"ls","age":21},{"id":10003,"name":"ww","age":19}]‘

json字符串解析为javascript值---js代码

var json_obj = JSON.parse(json_str);

javascript对象序列化为json字符串---js代码

var json_str = JSON.stringify(json_obj);

 

案例补充

    // json字符串----->json对象
    let jsonStr = ‘{ "name": "houfee", "age": 23, "gender": "男"}‘;

    let jsonObj01 = JSON.parse(jsonStr)
    console.log(jsonObj01); // object {name: "houfee", age: 23, gender: "男"}


    let jsonObj02 = eval("(" + jsonStr + ")");
    console.log(jsonObj02); // object {name: "houfee", age: 23, gender: "男"}

    var jsonObj03 = jQuery.parseJSON(jsonStr);
    console.log(jsonObj03); // object {name: "houfee", age: 23, gender: "男"}

    // json对象------>json字符串
    let jsonObj = { name: "houfee", age: 23, gender: "男"};
    let jsonStr01 = JSON.stringify(jsonObj)
    console.log(jsonStr01); // string {"name":"houfee","age":23,"gender":"男"}

 


以上是关于JSON的主要内容,如果未能解决你的问题,请参考以下文章

json 可视代码工作室Angular with Firebase片段

vs code 用户代码片段 html.json

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

如何在android中将json数据加载到片段中

使用 json rereiver php mysql 在片段中填充列表视图

VS Code配置markdown代码片段