2017-07-13 24 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]不同[ –