`
youyu4
  • 浏览: 440532 次
社区版块
存档分类
最新评论

2. json和javaScript对象的相互转换

    博客分类:
  • json
 
阅读更多

JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

 

1. json转javaScript对象

 

    var txt = '{ "employees" : [' +  
    '{ "firstName":"John" , "lastName":"Doe" },' +  
    '{ "firstName":"Anna" , "lastName":"Smith" },' +  
    '{ "firstName":"Peter" , "lastName":"Jones" } ]}';  
      
    var obj = eval ("(" + txt + ")");  
      
    console.log(obj.employees[1].firstName);  

    使用eval()函数时,必须为传入的JSON数据参数添加括号'()',否则会报语法错误。但eval()的问题在于,除了可以解析JSON数据,也可 以用于执行JavaScript脚本片段,这就会带来潜在的安全问题。

 

 

 

    JSON提供了专门的JSON Parser来实现只用于解析JSON数据,不会执行scripts脚本,而且速度更快。如下:

obj = JSON.parse(txt);

 

    在现在的浏览器中,如IE8, Firefox3.5, Chrome等以上版本,都提供了原生JSON解析器的支持,而且也是ECMAScript (JavaScript)的最新标准。因此,JSON Parser可以在JavaScript代码中是直接调用。

 

 

 

2. javaScript对象转json

var txt = JSON.stringify(obj); 

    使用JSON.strigify()函数,将Javascript对象转换为JSON文本数据。

 

    示例:

    <!DOCTYPE html>  
    <html>  
    <body>  
    <h2>Create Object from JSON String</h2>  
    <p>  
    First Name: <span id="fname"></span><br>   
    Last Name: <span id="lname"></span><br>   
    </p>   
    <script>  
    var txt = '{"employees":[' +  
    '{"firstName":"John","lastName":"Doe" },' +  
    '{"firstName":"Anna","lastName":"Smith" },' +  
    '{"firstName":"Peter","lastName":"Jones" }]}';  
      
    obj = JSON.parse(txt);  
      
    document.getElementById("fname").innerHTML=obj.employees[2].firstName   
    document.getElementById("lname").innerHTML=obj.employees[2].lastName   
      
    alert("JSON Data: \n" + JSON.stringify(obj));  
    </script>  
    </body>  
    </html>  

 

 

分享到:
评论

相关推荐

    net.sf.json.JSONObject实现Object对象与Json字符串的互转

    对于数组,可以使用`JSONArray`类,两者可以相互转换。例如,如果`User`对象包含一个`List&lt;String&gt;`的兴趣爱好,可以这样做: ```java List&lt;String&gt; hobbies = Arrays.asList("reading", "gaming"); jsonObject.put...

    用于java对象与json对象间的相互转换(net.sf.json.JSONObject)

    `fromObject`方法将Java对象转换为`JSONObject`,然后调用`toString()`将其转化为JSON字符串。 ### 进阶使用 - **处理嵌套结构**:`JSONObject`也支持嵌套结构,即JSON对象内包含其他JSON对象或数组。可以通过递归...

    com.alibaba.fastjson.JSON , net.sf.json.JSONObject

    Fastjson支持Java对象与JSON之间的相互转换,包括JSON字符串到Java对象的反序列化以及Java对象到JSON字符串的序列化。它还提供了解析JSON和生成JSON的功能,可以方便地进行JSON操作,例如: 1. 将Java对象转换为...

    org.json.JSONObject引用依赖包

    此外,`JSONObject`还支持与Java集合框架的相互转换,如ArrayList和HashMap,这大大简化了JSON数据的处理。 在项目中引入`org.json.JSONObject`依赖,通常有以下步骤: 1. 添加依赖:如果你使用的是Maven,可以在`...

    net.sf.json.JSONObject Jar包下载

    这个Jar包还支持JavaBean和JSON之间的相互转换。JavaBean是一种符合Java设计模式的类,通常用于封装数据。通过`JSONObject.fromObject()`方法,你可以将JavaBean对象转换为JSON对象;反之,使用`JSONObject.toBean()...

    org.json最新版本jar包(2017.10.18)

    JSONArray提供了添加、获取、删除元素的方法,并能与字符串相互转换。 3. **JSONString**:这是一个接口,用于表示那些可以被转化为JSON形式的Java对象。实现此接口的类可以调用`toJSONString()`方法将其对象转化为...

    阿里fastjson和谷歌net.sf.json(三种)

    - **API简单**:使用`JSON.parseObject()`和`JSON.toJSONString()`等方法可以快速完成JSON与Java对象的相互转换。 - **支持复杂类型**:Fastjson支持Java集合、自定义类型、泛型等复杂类型的转换。 - **JSONPath支持...

    Gson.jar和org.json.jar

    **Gson**是由谷歌提供的一个开源库,它允许Java对象和JSON数据之间进行相互转换。Gson的主要优点是其灵活性和强大的功能,能够处理复杂的Java对象,如自定义类、集合和嵌套结构。以下是一些使用Gson的关键知识点: ...

    Newtonsoft.Json_C#_

    这个库提供了全面的JSON序列化和反序列化功能,使得C#开发者可以轻松地将JSON与.NET对象相互转换。 **1. JSON序列化和反序列化** - **序列化**: 序列化是将.NET对象转换为JSON字符串的过程。`JsonSerializer`类是`...

    net.sf.json.zip

    "net.sf.json"是开源项目,提供了一个Java库来处理JSON,它允许在Java对象和JSON之间进行相互转换。 描述中提到,这个工具类主要用于开发者自己的查找和使用,这暗示了它可能是一个方便开发人员快速集成和操作JSON...

    json与对象相互转换系列处理

    以下是对JSON与对象相互转换的一些详细说明: 1. **Python中的JSON操作**: - `json.dumps()`: 序列化对象到JSON字符串。例如,`json.dumps(obj, ensure_ascii=False)`可以将Python对象转化为JSON字符串,`ensure_...

    net.sf.json及其依赖包(依赖包不要用新版本,结构有变化)

    1. JSON对象与Java对象的相互转换:`JSONObject`类可以将Java对象转换为JSON对象,反之亦然。这极大地简化了JSON数据的处理。 2. JSON数组与Java集合的转换:`JSONArray`类允许我们轻松地将Java集合(如ArrayList或...

    org.json包2015年12月

    总结来说,`org.json`包为Java开发者提供了一套便捷的JSON处理工具,通过简单的API实现了JSON对象和数组的操作,以及与Java数据结构的相互转换。尽管此版本已有些许年份,但对于理解JSON处理的基本原理和实践仍然极...

    org.json.jar、json.js下载

    在现代浏览器中,可以使用`JSON.stringify()`将JavaScript对象转换为JSON字符串,`JSON.parse()`则可以解析JSON字符串为JavaScript对象。 总结一下,`org.json.jar`和`json.js`都是为了处理JSON数据。在Java中,`...

    Newtonsoft.json组件

    1. **JSON解析和序列化**:Newtonsoft.Json的主要功能是对JSON字符串进行解析(JsonSerializer.Deserialize)和序列化(JsonSerializer.Serialize)操作,使得.NET对象和JSON数据之间可以相互转换。 2. **Json.NET ...

    json-src.zip org.json源码

    `org.json`是一个Java库,用于处理JSON数据,它提供了将JSON与Java对象相互转换的API。 在`org.json`源码包中,我们可以深入理解如何在Java中操作JSON对象。这个库包含了多个类和接口,如`JSONObject`、`JSONArray`...

    net.sf.json jar包

    net.sf.json.jar包是由SourceForge.net维护的一个开源项目,主要提供了JSON(JavaScript Object Notation)对象与Java对象之间的相互转换功能。JSON作为一种轻量级的数据交换格式,因其易于人阅读和编写,同时也易于...

    Newtonsoft.Json.dll 2.0到4.0(包括phone,Silverlight 用的)

    这个库在.NET框架中提供了强大的序列化和反序列化功能,使得开发者能够方便地在C#、VB.NET等.NET语言中将JSON与.NET对象相互转换。在标题中提到的2.0到4.0版本,涵盖了这个库的早期发展时期,其中包括对不同.NET平台...

    net.sf.json 相关jar包

    1. JSON对象与Java对象之间的相互转换:它可以将Java对象转换为JSON字符串,同时也能将JSON字符串解析为对应的Java对象。这对于数据传输和存储非常方便,比如从服务器端返回JSON数据给前端,或者从请求中解析JSON...

Global site tag (gtag.js) - Google Analytics