2017-07-13 23 views
-2

我使用的是JSON.stringify,我想知道是否有辦法將我的數據保存在數組的同一行上。javascript json.stringify()將數組放在同一行上

我想它看起來就像這樣:

"bob": { 
    "college": "UCLA", 
    "favorite_color": "green", 
    "favorite_numbers": [12, 42] 
}, 
"fred": { 
    "college": "USC", 
    "favorite_color": "blue", 
    "favorite_numbers": [10, 16] 
} 

但是它出來,如:

"bob": { 
    "college": "UCLA", 
    "favorite_color": "green", 
    "favorite_numbers": [ 
    12, 
    42 
    ] 
}, 
"fred": { 
    "college": "USC", 
    "favorite_color": "blue", 
    "favorite_numbers": [ 
    10, 
    16 
    ] 
} 

任何意見將是巨大的。

+0

數據返回的字符串中創建的方式上有怎麼會沒有關係輸出。您只需解析字符串並以您想要的任何格式提取所需的任何內容。 –

+0

首先,這不是有效的JSON開始。其次,你怎麼使用'JSON.stringify'?因爲默認情況下它沒有格式化。這只是一個長(單行)字符串。像「{」bob「:{」college「:」UCLA「,」favorite_color「:」green「,」favorite_numbers「:[12,42]},」fred「:{」college「:」USC「,」favorite_color 「:」blue「,」favorite_numbers「:[10,16]}}' –

+1

如果你想美化輸出字符串,JSON.stringify不是你的庫。 –

回答

0

你可以用replacer參數做到這一點:

var obj = { 
 
    "bob": { 
 
    "college": "UCLA", 
 
    "favorite_color": "green", 
 
    "favorite_numbers": [12, 42] 
 
    }, 
 
    "fred": { 
 
    "college": "USC", 
 
    "favorite_color": "blue", 
 
    "favorite_numbers": [10, 16] 
 
    } 
 
}; 
 

 
console.log('This is what you really want:'); 
 
console.log(JSON.stringify(obj, function(a, b) { 
 
    return (Object.prototype.toString.call(b) === '[object Array]') ? JSON.stringify(b) : b; 
 
}, 4)); 
 

 
console.log('This is your result:'); 
 
console.log(JSON.stringify(obj, null, 4));

文檔瀏覽:JSON.stringify()

+0

字符串'「[10,16]」'與數組[10,16]不同[ –