Javascript 如何使用jQuery强制GET请求上的字符串响应?
我编写了以下代码:Javascript 如何使用jQuery强制GET请求上的字符串响应?,javascript,jquery,json,get,Javascript,Jquery,Json,Get,我编写了以下代码: $.get('http://example.com/books.json', function (data) { // ... }); books.json是新书的对象列表,有时jQuery将json数据解析为对象,但有时将其保留为字符串(可能是因为一些国际/utf8问题)。在这种情况下,我自己调用JSON.parse()并获得有效的JSON对象 因此,我有一个问题-在使用jQuery执行GET请求时,强制JSON.parse的正确方法是什么?我不想让jQuery猜测它
$.get('http://example.com/books.json', function (data) {
// ...
});
books.json
是新书的对象列表,有时jQuery将json数据解析为对象,但有时将其保留为字符串(可能是因为一些国际/utf8问题)。在这种情况下,我自己调用JSON.parse()并获得有效的JSON对象
因此,我有一个问题-在使用jQuery执行GET请求时,强制JSON.parse的正确方法是什么?我不想让jQuery猜测它是否是JSON数据。我怎样才能让jQuery始终认为它是字符串,我将始终自己调用JSON.parse?我认为最好的方法是使用而不是
$。获取
如果数据参数的值是普通对象,则在将其附加到url之前,会将其转换为字符串并对url进行编码
大多数实现将指定一个成功处理程序:
$.getJSON( 'http://example.com/books.json', function( data ) {
$.each( data, function( key, val ) {
console.log('key is : '+key+" AND value is :"+val);
});
});
$。get
接受可选的数据类型
参数,您可以指定文本
,强制它以纯字符串形式返回数据
$.get('http://example.com/books.json', function (data) {
// ...
}, "text");
否则,它将查看响应中的内容类型:
标题以确定数据类型
如果您想强制执行JSON解析,可以指定JSON
,也可以使用$。getJSON
您在这里发布的代码是有效的,可以使用。api.json文件是否已更改?@michael是的,它是有效的,但问题是有时数据是字符串,但有时是json对象。是的,api.json一直在更改。我使用了错误的文件名。实际上是books.json?period=1day
在我最后一天工作的图书馆里得到了书籍的更改。我将更新问题。我现在更新了问题。我不想让jQuery猜测它是否是JSON数据。我怎样才能使jQuery始终认为它是字符串,并且我将始终自己调用JSON.parse?我再次更新了问题标题和内容。感谢您的回复。与.getJSON相反的是什么?我想强制使用字符串并自己调用JSON.parse。不客气,很抱歉我不能真正理解您想要实现的内容,如果答案没有帮助,请告诉我,我将删除它,谢谢。@bodacydo您的问题是“强制使用JSON.parse的正确方法是什么?”“,这就是这个答案所提供的。现在你的要求似乎正好相反。