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#对象相互转换,类库和测试demo 写了一个json与C#对象相互装换的类库,直接调用就行,有测试案例,代码注释非常详细 部分方法: /// 将Json字符串解析为C#中的对象 /// Json格式...
以上代码示例展示了如何利用`cjson`库进行JSON字符串与C结构体之间的转化。这个功能对于需要频繁处理JSON数据的C程序来说非常实用,简化了数据处理的复杂度,降低了出错的可能性。在实际项目中,可能还需要考虑错误...
2. test.c:测试文件,用于验证和调试代码功能,确保JSON字符串与结构体之间的转化正确无误。 3. cJSON.h 和 cJSON_Direct.h:头文件,定义了库的接口,供其他模块调用。 4. README:通常包含项目介绍、使用方法、...
自动格式化json字符串自动格式化json字符串自动格式化json字符串
Json对象与json字符串互相转换处理工具
在这个例子中,我们创建了一个关联数组,然后使用json_encode()将其转换为JSON字符串。结果将是: ```json { "name": "John Doe", "age": 30, "city": "New York" } ``` 如果你需要处理的对象是PHP类的实例,...
在Java开发中,将Java对象转换为JSON字符串或字符串数组是一项常见的任务,特别是在与前端交互、数据存储或者网络传输时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也...
本文将深入探讨Pbjson的使用方法、原理以及它如何处理Json字符串的生成与解析。 首先,让我们了解一下什么是protobuf。Protocol Buffers是Google推出的一种数据序列化协议,它允许我们将结构化数据序列化为二进制...
本工具专注于JSON的转化和格式化,旨在提供一个方便快捷的方式来处理JSON字符串,便于开发者进行数据分析和问题排查。 1. JSON的结构与基本元素: JSON由对象(Object)和数组(Array)两种基本类型构成。对象由...
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字符串,并介绍相关的技术知识。 首先,理解XML和JSON的基本结构是至关重要的。XML是一种树形结构的标记语言,通过标签来定义元素和属性,例如: ```xml ...
本文将深入探讨如何模仿JSON,根据对象生成JSON字符串,以及如何根据JSON字符串反向生成对象。 首先,我们要理解JSON的基本结构。一个JSON对象以大括号`{}`包围,其内部由键值对组成,键用双引号`""`包裹,值可以是...
总的来说,json2.js是解决JSON处理兼容性问题的一个工具,它提供了一种安全且标准化的方式来在JavaScript中进行JSON字符串与对象之间的转换,尤其对于那些不支持原生JSON操作的老版本浏览器而言。
C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言JSON字符串生成代码 C语言...
本篇文章将深入探讨如何在C++中读取并解析JSON字符串内容。 首先,你需要一个C++库来帮助解析JSON。虽然C++标准库并不直接支持JSON,但有许多第三方库可供选择,如 RapidJSON、nlohmann/json 和 Jsoncpp。这里我们...
在进行数据交互时,我们常常需要检查一个字符串是否符合JSON的格式规范,这就是`C语言检测字符串是否为json字符串`这个主题所关注的问题。 C语言本身并不直接支持JSON解析,因此我们需要借助第三方库或者自定义函数...
然而,Java原生并不支持直接将JSON字符串与Java对象进行转换,因此我们需要依赖第三方库来实现这一功能。本资源提供的"(Java)json和String互转必备Jar包"就是为了满足这种需求。 这个Jar包包含了一些关键的API和...
本压缩包提供了两个关键功能:将Map对象转换为JSON字符串和将List对象转换为JSON字符串。这两个工具类对于Android开发者来说非常实用,因为它们简化了Java对象与JSON格式之间的互换过程。 首先,让我们详细了解Map...
7. **序列化与反序列化**:除了解析JSON字符串,C++还可以将C++对象序列化为JSON格式,这在数据存储或网络传输中非常有用。例如,`j.dump()`可以将JSON对象转换为字符串。 8. **自定义类型与JSON**:nlohmann/json...
JSON字符串通常包含键值对,用花括号包围,键与值之间用冒号分隔,键值对之间用逗号分隔。 在Java中,假设我们有一个名为`Video`的类,可能包含如下属性: ```java public class Video { private String title; ...