首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >解析JSON字符串

解析JSON字符串
EN

Stack Overflow用户
提问于 2009-09-23 06:58:31
回答 4查看 3.3K关注 0票数 3

我有一个硬编码的JSON字符串。

代码语言:javascript
运行
复制
var test = "JSON STRING HERE";

我正在使用jQuery。我知道有一个像getJSON这样的函数,但它会调用AJAX。我想让它解析硬编码的字符串,这样我就可以使用$.each(test, function(a,b){}))

谢谢您抽时间见我。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-09-23 07:11:03

原始问题:

jQuery特别强调不包含可公开访问的JSON解析器或编码器。他们希望你使用第三方库来实现这个目的。

我推荐在json.org上托管的那个:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

或者,您可以使用托管在Google Code上的jQuery-JSON插件:

http://code.google.com/p/jquery-json/

在回答“为什么jQuery不能让它的解析器可用?”时说:

jQuery实际上并不包含任何类型的解析器。在jQuery的代码库的AJAX部分中,您可以实际看到它们在lines 572-579上做了什么。

简而言之,它们实际上会检查您是否包含了外部JSON库,如果找到了,就会使用它进行解析。如果没有包含json,它们将返回包装在函数中的json,有效地返回该json进行计算。非常棘手,但是非常聪明!

票数 11
EN

Stack Overflow用户

发布于 2009-09-23 09:29:25

你们知道吗,JSON的意思是"JavaScript Object Notation"?如果您对JavaScript对象表示法进行了硬编码,那么只需去掉引号,就可以完成对它的解析,因为JavaScript解析器会处理这个问题。

代码语言:javascript
运行
复制
var jsonstr = "{prop1: 'val1', prop2: 'val2'}";
var parsed = {prop1: 'val1', prop2: 'val2'};

很简单,不是吗?!!可能有一些我不知道的事情,但对我来说,很难理解用JavaScript为JavaScript编写解析器的人……当然,如果您不确定jsonstr来源的源代码的安全性,那么直接评估它可能不是最好的主意,但如果您控制源代码,尤其是如果您像问题中所说的那样对其进行硬编码,那么就去掉引号!

票数 5
EN

Stack Overflow用户

发布于 2009-09-23 07:23:20

下面是当数据类型设置为"json“时,jQuery在ajax请求中所做的事情(这就是getJSON在幕后所做的事情):

代码语言:javascript
运行
复制
window["eval"]("(" + data + ")");
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1464354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档