我正在尋找在JavaScript中執行jQuery.parseJSON
的方法,該方法解析一個json以返回一個JavaScript對象。我無法使用jQuery,因爲我構建的整個插件是獨立的JS,直到現在還沒有使用jQuery。有沒有這種東西已經在JavaScript中提供了?`jQuery.parseJSON`函數只有javascript(沒有jQuery)
回答
使用本機JSON對象(這是唯一一次說「JSON對象」是正確的,它實際上是一個名爲JSON
的對象)來操縱JSON字符串。
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON
使用JSON.parse(yourJSONString);
序列化和JSON.stringify(yourJSONObject);
反序列化。
如果您查看在線492上的jQuery core source,jQuery.parseJSON
只是JSON.parse
的別名。
'jbabey'編輯了這個問題。我打算提到jQuery.parseJSON – user1240679 2013-02-27 18:50:47
您可以使用大多數瀏覽器支持的native JSON object,但是當您嘗試在恐龍瀏覽器(如IE7及更低版本)中使用它時會遇到問題。還有就是選項include a standalone plugin that mimics native functionality here (JSON.js).
簡短的回答:
使用瀏覽器的本地方法JSON.parse()
window.JSON.parse(jsonString);
龍答:
爲了得到它在舊的瀏覽器工作,你可以採用jQuery.parseJSON
的source code,並刪除jQuery本身的任何依賴項。這裏是一個工作的獨立版本:
function standaloneParseJson (data) {
// Attempt to parse using the native JSON parser first
if (window.JSON && window.JSON.parse) {
return window.JSON.parse(data);
}
if (data === null) {
return data;
}
var rvalidchars = /^[\],:{}\s]*$/;
var rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g;
var rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g;
var rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g;
if (typeof data === "string") {
// Make sure leading/trailing whitespace is removed (IE can't handle it)
data = data.replace(/^\s+|\s+$/g, '');
if (data) {
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if (rvalidchars.test(data.replace(rvalidescape, "@")
.replace(rvalidtokens, "]")
.replace(rvalidbraces, ""))) {
return (new Function("return " + data))();
}
}
}
// Error code here
//jQuery.error("Invalid JSON: " + data);
}
- 1. JavaScript函數只有當有警報
- 2. JavaScript函數只有在連接類型的警報沒有
- 3. javascript函數沒有定義?
- 4. javascript函數沒有定義
- 5. JavaScript函數沒有運行
- 6. Javascript函數沒有響應
- 7. javascript函數沒有執行
- 8. Javascript函數沒有完成
- 9. javascript函數沒有運行
- 10. JavaScript函數沒有定義
- 11. javascript函數沒有響應
- 12. jQuery函數沒有返回
- 13. jquery函數沒有執行
- 14. jQuery函數沒有找到
- 15. JQuery函數沒有觸發
- 16. Javascript和HTML,Javascript函數沒有輸出
- 17. 寫一個函數只有JavaScript
- 18. JavaScript函數調用 - 希望它在jQuery的只有
- 19. Wysihat沒有Rake,只是Javascript?
- 20. 只是php沒有javascript
- 21. 觸發jQuery函數只有一次
- 22. 處理JavaScript函數中沒有參數
- 23. javascript沒有範圍函數參數
- 24. Javascript只有沒有JQUERY幻燈片一個DIV .Active類
- 25. 匹配身高只有,沒有的jQuery或Javascript
- 26. 按類隱藏元素(只有Javascript,沒有Jquery)
- 27. jQuery.ParseJson沒有從MySQL數據庫返回一個值
- 28. 只有當複選框沒有被選中時纔會調用javascript函數
- 29. Jquery - 如何運行一個函數onclick只有當鏈接沒有拖動?
- 30. AngularJS JavaScript函數沒有要求
是的,JSON.parse – 2013-02-27 18:48:03
@KevinB:編輯了問題。我打算提jQuery.parseJSON – user1240679 2013-02-27 18:51:08
我的評論仍然適用。 – 2013-02-27 18:52:17