什么是JSON.parse写的/它是开源的吗?

时间:2012-01-13 00:18:06

标签: php javascript json

PHP函数是用C语言编写的,如果您愿意,可以查看源代码。例如这里 - session_start source

使用Javascript怎么样?如何实现JSON.parse这样的函数?我在哪里可以查看来源?

谢谢!

4 个答案:

答案 0 :(得分:9)

JSON.parse是原生的。这意味着它是在浏览器中定义的,该方法的实现是特定于浏览器实现的。

v8(Chrome)有JsonParser::ParseJson

的C ++方法

spidermonkey(Firefox)具有js_json_parse

的C ++函数

JavaScriptCore(Webkit / Safari)具有JSONProtoFuncParse

的C ++函数

Rhino(Mozilla)有parseValue

的Java方法

Opera和IE实现是封闭源代码。我也认为Nitro的实施也是闭源的。

请注意,还有许多其他JavaScript引擎。

答案 1 :(得分:3)

支持它的每个JavaScript引擎都有自己的JSON.parse实现。您可以在各自的存储库中查看各种开源引擎(V8SpiderMonkey)的代码。您还可以在Crockford's github page上查看JavaScript实现(Crockford是提出JSON的人) - 实际上,不止一个;有一个版本是状态机,另一个版本是递归下降解析器,另一个版本依赖于eval(这是一种作弊行为)。从JSON home page链接的各种语言也有各种各样的实现。

答案 2 :(得分:0)

这取决于浏览器。您可以查看自己喜欢的来源,看看是否可以在那里找到它。

答案 3 :(得分:0)

取决于浏览器。

例如:Chrome正在使用V8 javascript引擎。 http://code.google.com/p/v8/可能包含内部本身,或者可能是Chromium项目的一部分http://www.chromium.org/Home