JSON与JavaScript的转换

JSON是一种数据格式,可以把 JSON 直接传给 eval(),而且不必创建 DOM 对象。它有三种类型的值:

?简单值:使用与 JavaScript 相同的语法,可以在 JSON 中表示字符串、数值、布尔值和 null。但 JSON 不支持 JavaScript 中的特殊值 undefined。

例如:5、“hello world!”
? 对象:对象作为一种复杂数据类型,表示的是一组无序的键值对儿。而每个键值对儿中的值可以是简单值,也可以是复杂数据类型的值。

下面是一个 JavaScript 中的对象字面量:

var person = {
    name: "Nicholas",
    age: 29
};

json表示上述对象的方式如下:

{
    "name": "Nicholas",
    "age": 29
}

属性的值可以是简单值,也可以是复杂类型值,因此可以像下面这样在对象中嵌入对象:

{
    "name": "Nicholas",
    "age": 29,
    "school": {
        "name": "Merrimack College",
        "location": "North Andover, MA"
    }
}
? 数组:数组也是一种复杂数据类型,表示一组有序的值的列表,可以通过数值索引来访问其中的值。数组的值也可以是任意类型——简单值、对象或数组。

JavaScript 中的数组字面量:var values = [25, "hi", true];在json中,可以采用同样的语法表示同一个数组:[25, "hi", true]。

把数组和对象结合起来,可以构成更复杂的数据集合,例如:

[{
    "title": "Professional JavaScript",
    "authors": [
        "Nicholas C. Zakas"
    ],
    edition: 3,
    year: 2011
}, {
    "title": "Professional JavaScript",
    "authors": [
        "Nicholas C. Zakas"
    ],
    edition: 2,
    year: 2009
}, {
    "title": "Professional Ajax",
    "authors": [
        "Nicholas C. Zakas",
        "Jeremy McPeak",
        "Joe Fawcett"
    ],
    edition: 2,
    year: 2008
}, {
    "title": "Professional Ajax",
    "authors": [
        "Nicholas C. Zakas",
        "Jeremy McPeak",
        "Joe Fawcett"
    ],
    edition: 1,
    year: 2007
}]

JSON 不支持变量、函数或对象实例。JavaScript 字符串与 JSON 字符串的最大区别在于, JSON 字符串必须使用双引号(单引号会导致语法错误)。

JSON 对象有两个方法: stringify()和 parse()。在最简单的情况下,这两个方法分别用于把JavaScript 对象序列化为 JSON 字符串和把 JSON 字符串解析为原生 JavaScript 值。

var book = {
    "title": "Professional JavaScript",
    "authors": [
        "Nicholas C. Zakas"
    ],
    edition: 3,
    year: 2011
};
var jsonText = JSON.stringify(book, null, 4);
// var jsonText = JSON.stringify(book, null, " - -");
console.log(jsonText);

var bookCopy = JSON.parse(jsonText, function(key, value) {
    if (key == "releaseDate") {
        return new Date(value);
    } else {
        return value;
    }
});
console.log(bookCopy);
时间: 2024-10-06 18:03:17

JSON与JavaScript的转换的相关文章

从Python传递JSON到JavaScript

OS: Windows 8.1 with update 关键字:Python 3.4,HTML5,JSON,JavaScript 1.LocalServer.py,启动server,打开网页,传递JSON. from threading import Thread import time import webbrowser import http.server import socketserver import json import os port_number = 8000 server

<摘录>Gson对Java嵌套对象和JSON字符串之间的转换

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识,请参考以下内容:http://json.org/json-zh.html 在服务器和客户端之间使用JSON数据格式进行通信,经常会涉及到JAVA对象和JSON字符串之间的转换.通常,我们可以使用一些JSON解析工具,例如:Gson,FastJson等.当然,我们也可以手动解析,只是会比较繁琐. 下面

json字符串和json格式对象的转换

json字符串和json格式对象的转换: 实际编码中json字符串和json格式的对象有时候需要进行相互转换,下面就介绍一下如何实现. 一.jQuery插件支持的转换方式: $.parseJSON( jsonstr ); 以上代码可以将json字符串转换为json格式对象. 二.浏览器支持的转换方式: JSON.parse(jsonstr); //可以将json字符串转换成json对象 JSON.stringify(jsonobj); //可以将json对象转换成json对符串 注意:ie7和i

json对象与字符串转换

//使用json中的parser方法转换: var str='{"name":"fendouer", "age":23}'; //这是一个json字符串'' var ob=JSON.parse(str) ; //返回一个新对象 console.log(ob.name) //把json中的stringify对象转换成字符串 var obj={"student":[{"name":"cyl"

JavaBean和json数据之间的转换(一)简单的JavaBean转换

1.为什么要使用json? JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,因为其高性能.可读性强的原因,成为了现阶段web开发中前后端交互数据的主要数据格式 2.简单的JavaBean和json之间的转换 1)首先,我们先写一个简单的JavaBean,内容非常简单,只有name和age两个字段 1 public class Student { 2 private String name; 3 private Integer age; 4 } 2)我

SpringMVC关于json、xml自动转换的原理研究

前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:http://www.cnblogs.com/fangjian0423/p/springMVC-introduction.html 现象 本文使用的demo基于maven,是根据入门blog的例子继续写下去的. 我们先来看一看对应的现象. 我们这里的配置文件 *-dispatcher.xml中的关键配置如下(其他常规的配置文件不在讲解,可参考本文一开始提到的入门blog): (视图配置

IE JavaScript字符串转换成Date后出现NaN错误

参考的博文:http://blog.csdn.net/zhu7478848/article/details/53388582 在IE浏览器下, JavaScript字符串转换成Date后会出现NaN错误,但是在其他的浏览器下,都没有问题. 因此,转变字符串的格式. var  date  = new Date("2016-10-11") 在IE下date是NaN,而其他浏览器正常. 字符串修改成 2016/10/11 var  date  = new Date("2016-10

go json null字段的转换

最近试了试go中对json null字段进行转换,代码如下: struct 转 json: package main import ( "encoding/json" "fmt" "os" ) var d = []byte(`{ "world":[{"data": 2251799813685312}, {"data": null}]}`) type jsonobj struct{ Wor

JavaScript数值转换总结

在JavaScript中,数值转换一般有三种方式: 一.Number(param)函数:param可以用于任何数据类型 1.1  param是Boolean值,true和false分别转换为1和0: 1.2  param是数值,只是简单的传入和返回 1.3  param是null和undefined,分别返回0和NaN 1.4  param是字符串,遵循下列规则: 1.4.1  如果字符串中只包含数字,则转换为十进制,前导0被忽略: 1.4.2  如果字符串中包含有效的浮点数格式,则返回对应的浮