javascript - Javascript 如何区分 Json 对象和字符串?

标签 javascript json jquery

当这个奇怪的 JavaScript 问题出现时,我正在阅读一段代码片段并弄清楚它是如何工作的。

在他们的 JavaScript 中,他们称之为

var apiUrl = '/api/v1/pin/?format=json&order_by=-id&offset='+String(offset);
...
$.get(apiUrl, function(pins) { 
    for (...; i < pins.objects.length; i++) ... // works fine
});

他们的API返回这个json格式:

{"meta": {"limit": 50, "next": "?limit=50&format=json&order_by=-id&offset=60", "offset":    
10, "previous": null, "total_count": 79}, "objects": [ {...},{...}, ... ]}

我试图模仿它,但 $.get 从未接受我的简化 json 字符串。

// my attempt
$.get(myApiUrl, function(pins) { 
    for (...; i < pins.objects.length; i++) ... // ERROR: undefined length
});

我的 Json 字符串采用类似但缩短的格式。

{"objects": [{...},{...}, ... ]}

我无法让它工作,直到我用谷歌搜索 $.getJson() 命令。我只是想知道为什么他们的 javascript 代码只使用 $.get 而我的却必须使用 $.getJson??

是否可以设置某种 header 来强制 javascript 将其读取为 json?

最佳答案

如果您没有明确指定内容类型,jQuery 将尝试根据服务器返回的 header 确定数据类型。

如果您没有使用 JSON 序列化程序,请使用 http://jsonlint.com/ 验证 JSON 的有效性。或this ,否则会出现错误。

JSON 的正确 ContentType header 是:application/json

关于javascript - Javascript 如何区分 Json 对象和字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16352403/

相关文章:

javascript - 将参数值传递给按钮

javascript - 如何为项目指定本地版本的 Node?

javascript - 从 express 中的路由文件夹访问公共(public)静态文件

java - 将特定的 String 格式转换为 json

ios - 如何使用 SwiftyJSON 在 NSUserDefaults 中保存然后加载 JSON?

javascript - 如何消除 jQuery 中宽度未定义的错误?

javascript - Tinymce 4.x 的 Ajax 文件管理器

javascript - 从 JSON 文件调用整个 Highchart API

javascript - 我希望在移动设备中关闭 div 后,我的 div 显示在桌面上

Javascript 隐藏/显示数据作为输入 radio