JavaScript 判断数据是否为 JSON 格式可以使用 JSON.parse() 方法. 此方法用于将数据转换为 JavaScript 对象, 此方法只能解析 JSON 格式数据, 否则会出错. 通过解析结果是否出错即可判断.
判断数据是否为 JSON 格式:
- function isJSON_test(str) {
- if (typeof str == 'string') {
- try {
- var obj=JSON.parse(str);
- console.log('转换成功:'+obj);
- return true;
- } catch(e) {
- console.log('error:'+str+'!!!'+e);
- return false;
- }
- }
- console.log('It is not a string!')
- }
- // 测试
- isJSON_test('123'); //number
- isJSON_test('aaaa'); //string
- isJSON_test('"aaa"');
- isJSON_test('true'); // 布尔
- isJSON_test('["1","2"]'); // 数组
- isJSON_test('{name:"123"}'); // 对象
- isJSON_test('{}'); // 空对象
- isJSON_test('null'); //null
- isJSON_test('Undefined'); //Undefined
- isJSON_test('{"name":"123"}'); //JSON
- isJSON_test('{"name":"123",}'); // 不规范的 JSON
---- v2.0 新增测试 -----
- isJSON_test('["1{211323}","2"]'); // 数组 : 含有 {
- 字符
- isJSON_test('[{},"2"]'); // 数组 : 子项包含对象
- isJSON_test('[[{},{"2":"3"}],"2"]'); // 多维数组
测试结果:
以上测试结果, 能够转换成功的有: 数字, 字符串, 布尔, 数组, 空对象, null,JSON.
其中正确的 JSON 格式有: 数组, 空对象, JSON
所以得出以下结论:
如果 JSON.parse 能够转换成功; 并且转换后的类型为 object 且不等于 null, 那么这个字符串就是 JSON 格式的字符串.
JSON.parse():
JSON 通常用于与服务端交换数据.
在接收服务器数据时一般是字符串.
我们可以使用 JSON.parse() 方法将数据转换为 JavaScript 对象.
语法:
JSON.parse(text[, reviver])
参数说明:
text: 必需, 一个有效的 JSON 字符串.
reviver: 可选, 一个转换结果的函数, 将为对象的每个成员调用此函数.
解析前要确保你的数据是标准的 JSON 格式, 否则会解析出错.
来源: http://www.css88.com/qa/javascript/11508.html