簡體   English   中英

(javascript) JSON.parse() 更改 json 的內容

[英](javascript) JSON.parse() changes content of json

我正在為一款游戲制作一個練習工具,幫助你學習如何用鋼琴彈奏歌曲,而我想要的是讓所有在 50 毫秒內按下的音符相互顯示為“你有將它們壓在一起”現在,這似乎正在工作,但是當我將歌曲的字符串傳遞給解析器時,它會改變數組的內容。 我已經使用完全相同的方法在其他函數中解析 object 並且它按預期工作,這里不是,這是未解析數組的(部分)

[{"time":2937,"key":"Key2"},
{"time":2943,"key":"Key7"},
{"time":2949,"key":"Key0"},
{"time":4297,"key":"Key6"},
{"time":4306,"key":"Key11"},
{"time":4315,"key":"Key2"},
{"time":5547,"key":"Key5"},
{"time":5549,"key":"Key2"},
{"time":5554,"key":"Key7"},
{"time":7480,"key":"Key8"},
{"time":7814,"key":"Key9"},

這是在解析之后

0: {time: 2943, key: "Key7"}
1: {time: 4297, key: "Key6"}
2: {time: 4306, key: "Key11"}
3: {time: 4315, key: "Key2"}
4: {time: 5547, key: "Key5"}
5: {time: 5549, key: "Key2"}
6: {time: 5554, key: "Key7"}
7: {time: 7480, key: "Key8"}
8: {time: 7814, key: "Key9"}
9: {time: 8158, key: "Key5"}
10: {time: 8166, key: "Key10"}

為什么會發生這種情況,我該如何解決? 代碼是字面意思:

console.log(song)
trainingSong = JSON.parse(song)
console.log(trainingSong)

使用JSON.stringify對代碼進行字符串化,然后使用JSON.parse進行解析。

 console.log( JSON.stringify([ { time: 2937, key: "Key2" }, { time: 2943, key: "Key7" }, { time: 2949, key: "Key0" }, { time: 4297, key: "Key6" }, { time: 4306, key: "Key11" }, { time: 4315, key: "Key2" }, { time: 5547, key: "Key5" }, { time: 5549, key: "Key2" }, { time: 5554, key: "Key7" }, { time: 7480, key: "Key8" }, { time: 7814, key: "Key9" }, ]) );

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM