我有一个只有在传递JSON对象时才有效的函数。如果我将一个字符串传递给它,格式与JSON相同,则它不起作用。所以我想让该函数认为传递给它的字符串是一个JSON。该字符串确实是JSON格式。
我也尝试了以下内容。我通过Ajax输入了字符串,"句柄为"参数为" JSON",然后当我将结果传递给它起作用的函数时。
所以我推断问题不在于字符串。如何将此字符串转换为JSON?如果我通过ajax请求得到相同的字符串,然后将其传递给函数,则直接传递它不起作用。
提前谢谢
答案 0 :(得分:-1)
JavaScript是一种动态类型语言,因此您无法事先指定函数参数的类型。如果您需要,请查看TypeScript。
JSON只是一个String,而不是JavaScript中的独立类型。要将JavaScript对象转换为等效的JSON字符串表示,请使用:
const myJSON = JSON.stringify ({ a: 'b' })
要从JSON字符串中获取JavaScript对象,请使用:
JSON.parse (myJSON)
当通过网络时,如果您将类型指定为JSON,则库可以自动返回序列化对象。您还没有粘贴任何代码,因此我猜测您尚未在网络请求中将application/json
指定为Content-Type
。由于您已标记了问题jQuery
,请查看[$.getJSON][2]
,这应该是您想要的。
答案 1 :(得分:-2)
使用 JSON.parse
function isJson(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
示例:
function isJson(str) {
try {
JSON.parse(str);
} catch (e) {
return false;
}
return true;
}
str = '{"a":1, "b":2}';
console.log(isJson(str)); // true
str1 = '{["a":1, "b":2]}';
console.log(isJson(str1)); // false