`
gwh_08
  • 浏览: 335709 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

json与字符串

    博客分类:
  • js
 
阅读更多

json与xml是我们进行数据传输方式,json由于其快速的提取方式经常被大家采用。

大部分的前台框架都对json格式的数据提取进行了处理,如ext,jquery等。但是当我们不用这些框架的时候,对server端的响应的json数据的处理上往往会遇到一些问题,下面是我遇到的一个郁闷了好久的问题。

当server,response的json一个时,响应结果明明为一个json对象如:

{ "programmers": [
        { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
        { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
        { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
       ],
      "authors": [
        { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
        { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
        { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
       ],
      "musicians": [
        { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
        { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
       ]
  }

但如果直接操作:

var people =
      { "programmers": [
        { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },
        { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" },
        { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }
       ],
      "authors": [
        { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },
        { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },
        { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }
       ],
      "musicians": [
        { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },
        { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }
       ]
   }

people.programmers[0].firstName

确报错,没有此对象。

在此主意不要被外表所迷惑。

ajax的XMLHttpRequest响应目前只有两种格式:

一为字符串形式的响应数据,使用responseText获得。

一为XML 形式的响应数据,使用responseXML获得。

所以server的响应格式实质为String类型,而不是json类型。

所以无法直接采用操作json对象格式的形式获取数据。由此我们想到了eval,但是问题又出来了。

直接用eval方法会出项格式转化错误,那该如何解决呢?最后查阅json官网上的json.js之后发现

j = eval('(' + text + ')');

 的转换方式,并测试如下

首先组装字符串:

var list = "{'list':{'codeNumber':'111111111111111'}],'totalCount':6}";

 组合成了字符串list,下一步就是转换成对象了方法如下:

在字符串两端再加上括号然后eval就ok了。测试代码如下:

var list = "{'list':{'codeNumber':'111111111111111'}],'totalCount':6}";
var res =eval('('+list2+')')
alert(res);
alert(res.list[0].codeNumber);

 主意只有在alert(res)为[object Object]时,才说明,此对象有可能为一个json对象而非字符串。

 

分享到:
评论

相关推荐

    C# json格式解析,Json格式字符串与C#对象相互转换,类库+使用案例,注释详细

    C# json格式转换,Json格式字符串与C#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...

    C实现的 json格式字符串与结构体转化

    以上代码示例展示了如何利用`cjson`库进行JSON字符串与C结构体之间的转化。这个功能对于需要频繁处理JSON数据的C程序来说非常实用,简化了数据处理的复杂度,降低了出错的可能性。在实际项目中,可能还需要考虑错误...

    C语言实现的 json格式字符串与结构体自动相互转化

    2. test.c:测试文件,用于验证和调试代码功能,确保JSON字符串与结构体之间的转化正确无误。 3. cJSON.h 和 cJSON_Direct.h:头文件,定义了库的接口,供其他模块调用。 4. README:通常包含项目介绍、使用方法、...

    Json字符串自动格式化

    自动格式化json字符串自动格式化json字符串自动格式化json字符串

    Json对象与json字符串互相转换处理工具

    Json对象与json字符串互相转换处理工具

    由php对象生成json字符串 把php对象变成json字符串.zip

    在这个例子中,我们创建了一个关联数组,然后使用json_encode()将其转换为JSON字符串。结果将是: ```json { "name": "John Doe", "age": 30, "city": "New York" } ``` 如果你需要处理的对象是PHP类的实例,...

    java对象转换为json字符串或字符串数组

    在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...

    Pbjson字符串生成与解析

    本文将深入探讨Pbjson的使用方法、原理以及它如何处理Json字符串的生成与解析。 首先,让我们了解一下什么是protobuf。Protocol Buffers是Google推出的一种数据序列化协议,它允许我们将结构化数据序列化为二进制...

    json转化工具,字符串格式化工具,方便又快捷

    本工具专注于JSON的转化和格式化,旨在提供一个方便快捷的方式来处理JSON字符串,便于开发者进行数据分析和问题排查。 1. JSON的结构与基本元素: JSON由对象(Object)和数组(Array)两种基本类型构成。对象由...

    mysql 解析json字符串

    mysql解析Json字符串插件 安装方法 1、拷贝lib_mysqludf_json_parsing.dll到mysql目录C:\Program Files\MariaDB 5.5\lib\plugin下 2、在数据库中执行 DROP FUNCTION json_get; CREATE FUNCTION json_get RETURNS ...

    将string类型xml字符串转为json字符串

    本篇文章将详细讲解如何将string类型的XML字符串转换为JSON字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...

    模仿json,根据对象生成json字符串,根据字符串生成对象

    本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...

    json2.js 字符串转转json对象工具

    总的来说,json2.js是解决JSON处理兼容性问题的一个工具,它提供了一种安全且标准化的方式来在JavaScript中进行JSON字符串与对象之间的转换,尤其对于那些不支持原生JSON操作的老版本浏览器而言。

    C语言JSON字符串生成代码

    C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言...

    c++读取解析Json字符串内容

    本篇文章将深入探讨如何在C++中读取并解析JSON字符串内容。 首先,你需要一个C++库来帮助解析JSON。虽然C++标准库并不直接支持JSON,但有许多第三方库可供选择,如 RapidJSON、nlohmann/json 和 Jsoncpp。这里我们...

    C语言检测字符串是否为json字符串

    在进行数据交互时,我们常常需要检查一个字符串是否符合JSON的格式规范,这就是`C语言检测字符串是否为json字符串`这个主题所关注的问题。 C语言本身并不直接支持JSON解析,因此我们需要借助第三方库或者自定义函数...

    (Java)json和String互转必备Jar包

    然而,Java原生并不支持直接将JSON字符串与Java对象进行转换,因此我们需要依赖第三方库来实现这一功能。本资源提供的"(Java)json和String互转必备Jar包"就是为了满足这种需求。 这个Jar包包含了一些关键的API和...

    androidmap转json字符串、list转json字符串工具类.zip

    本压缩包提供了两个关键功能:将Map对象转换为JSON字符串和将List对象转换为JSON字符串。这两个工具类对于Android开发者来说非常实用,因为它们简化了Java对象与JSON格式之间的互换过程。 首先,让我们详细了解Map...

    C++解析json字符串

    7. **序列化与反序列化**:除了解析JSON字符串,C++还可以将C++对象序列化为JSON格式,这在数据存储或网络传输中非常有用。例如,`j.dump()`可以将JSON对象转换为字符串。 8. **自定义类型与JSON**:nlohmann/json...

    Gson处理Json格式字符串代码

    JSON字符串通常包含键值对,用花括号包围,键与值之间用冒号分隔,键值对之间用逗号分隔。 在Java中,假设我们有一个名为`Video`的类,可能包含如下属性: ```java public class Video { private String title; ...

Global site tag (gtag.js) - Google Analytics