就像是:
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
Run Code Online (Sandbox Code Playgroud)
解决方案不应包含try/catch.我们中的一些人打开"中断所有错误",他们不喜欢调试器打破那些无效的JSON字符串.
我的JavaScript有时会崩溃在这一行:
var json = eval('(' + this.responseText + ')');
Run Code Online (Sandbox Code Playgroud)
当参数eval()不是JSON 时会导致崩溃.在进行此调用之前,有没有办法检查字符串是否为JSON?
我不想使用框架 - 是否有任何方法可以使用这个工作eval()?(我保证,有充分的理由.)
我有一个json字符串,由JSON.Stringify函数从对象转换而来.
我想知道它是json字符串还是只是一个常规字符串.
是否有像"isJson()"这样的函数来检查它是否是json?
当我使用本地存储时,我想使用该功能,如下面的代码.
先感谢您!!
var Storage = function(){}
Storage.prototype = {
setStorage: function(key, data){
if(typeof data == 'object'){
data = JSON.stringify(data);
localStorage.setItem(key, data);
} else {
localStorage.setItem(key, data);
}
},
getStorage: function(key){
var data = localStorage.getItem(key);
if(isJson(data){ // is there any function to check if the argument is json or string?
data = JSON.parse(data);
return data;
} else {
return data;
}
}
}
var storage = new Storage();
storage.setStorage('test', {x:'x', y:'y'});
console.log(storage.getStorage('test'));
Run Code Online (Sandbox Code Playgroud) 我是 json 的新手。我正在学习 Json 模式中的更多内容,但在针对 json-schema.json 文件测试user.json文件时我无能为力。请注意,我需要使用 javascript 变量进行测试,该变量应返回 true 或 false 以进一步处理。特此粘贴我的文件。
json-schema.json
{
"description": "Any validation failures are shown in the right-hand Messages pane.",
"type": "object",
"properties": {
"foo": {
"type": "number"
},
"bar": {
"type": "string",
"enum": [
"a",
"b",
"c"
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
用户.json
{
"foo": 12345,
"bar": "a"
}
Run Code Online (Sandbox Code Playgroud)
当我在http://jsonschemalint.com/#/version/draft-05/markup/json中测试上述代码时 ,它说user.json的格式正确。但我需要在本地测试
提前致谢。
我正在为API编写单元测试。
如果我做这样的事情:
const apiResponse:object = JSON.parse(body)
expect(apiResponse).toHaveProperty('error')
Run Code Online (Sandbox Code Playgroud)
而且API没有返回JSON,那么我得到了类似的信息:
SyntaxError:JSON中的意外令牌p在JSON.parse()的位置0
我希望测试不会失败,而不是在测试中出错。
我可以说这是什么玩笑测试?
我收到的此字符串可解析为有效JSON吗?
我做了一项研究,奇怪的是我找不到检查对象是否被字符串化的正确方法。
我尝试像这样检查并分配它,但不起作用(它通过验证并只分配 arr_ ):
var arr = arr_ instanceof String ? JSON.parse(arr_) : arr_;
Run Code Online (Sandbox Code Playgroud) 我已经和JSON合作了很长一段时间了.
我知道JSON是stringifiedJavaScript Object.
我也知道是什么使JSON,如下面的线程中所讨论的.
JSON和Object Literal Notation有什么区别?
问题: 但是,我想知道是否有typeof某种方式可以告诉我给定的字符串是JSON还是任何其他字符串.
到目前为止我所观察到的:
1. var data = {"name":"JS"};
alert(typeof(data)); // object. Agree!
2. // I know this is JSON, by looking at the syntax
var data = '{"name":"JS"}';
alert(typeof(data)); // string.
3. // I know this is just any other string (NOT JSON), by looking at the syntax.
var data = "AnyOtherString";
alert(typeof(data)); // string
Run Code Online (Sandbox Code Playgroud)
在JavaScript中,有什么方法可以区分上面的第2 点和第3点.可能,类似的东西typeof会告诉我它是否只是一个字符串或JSON(也是一个字符串).
javascript ×7
json ×7
ajax ×1
api ×1
jestjs ×1
jquery ×1
jsonschema ×1
stringify ×1
typescript ×1
validation ×1