CNode

Nodejs 的 JSON.parse 問題

Hhkmung发布于13 年前最后回复13 年前4 回复18071 浏览0 收藏

JSON.parse 解析json 上有問題嗎 ??

代碼 : var old_m, new_m, oldArr, newArr;

console.log("TEST A");

old_m = '[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}]'; oldArr = JSON.parse( old_m );

new_m = '{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}'; newArr = JSON.parse( new_m );

console.log("old_text:" + old_m ); console.log("old Arr:" + oldArr.date );

console.log("new_text:" + new_m ); console.log("new Arr:" + newArr.date );

console.log("TEST B");

old_m = '[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"},{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}]'; oldArr = JSON.parse( old_m );

new_m = '{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"},{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}'; newArr = JSON.parse( new_m );

console.log("old_text:" + old_m ); console.log("old Arr:" + oldArr.date );

console.log("new_text:" + new_m ); console.log("new Arr:" + newArr.date );

============================== OUTPUT :

TEST A

old_text:[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}] old Arr:undefined

new_text:{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"} new Arr:20-06 11:23:01

TEST B

old_text:[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"},{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}] old Arr:undefined

new_text:{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"},{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"} new Arr: 已死

查看回复

回复 (4)

F
firstgeniusboy#1·13 年前

你要搞清楚json后是对象还是数组,要是数组就[]括起来,要是对象就用对象定义。

H
hkmung#2·13 年前

[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"},{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}] old Arr:undefined

即是數組用 oldArr.length , 再 for loop 吧

P
Pana#3·13 年前

这代码看起来好乱

H
hkmung#4·13 年前

哦 , test 代碼没有寫得很好 , 見諒 因為我習慣了 php print_r display 所有 array

Nodejs 的做法應該是

var text = '[{"date":"20-06 11:23:01","_id":"51c2759fa828f0920b000005"}]'; var arr = JSON.parse( text );

console.log("Date:" + arr[0].date );

参与回复
登录后即可参与回复。登录