2017-07-13 3 views
-2

Ich verwende JSON.stringify und ich frage mich, ob es eine Möglichkeit gibt, meine Daten auf der gleichen Linie in einem Array zu halten.Javascript JSON.stringify() Array in derselben Zeile setzen

Ich möchte es so aussehen:

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

Doch es wie kommt:

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

groß würde Ratschläge.

+0

Die Art und Weise die Daten im zurückgegebenen String erstellt wird, hat keinen Einfluss auf wie wird es Ausgabe. Sie analysieren einfach die Zeichenfolge und extrahieren, was Sie wollen, in welchem ​​Format Sie wollen. –

+0

Zuerst ist das nicht gültig, mit JSON zu beginnen. Zweitens, wie benutzt du JSON.stringify? Weil es standardmäßig nicht formatiert ist. Es ist nur eine lange (einzelne Zeile) Zeichenfolge. Wie '{" bob ": {" college ":" UCLA "," favorite_color ":" grün "," favorite_numbers ": [12,42]}," fred ": {" college ":" USC "," favorite_color ":" blau "," favorite_numbers ": [10,16]}}' –

+1

Wenn Sie die Ausgabezeichenfolge verschönern möchten, ist JSON.stringify nicht die Bibliothek für Sie. –

Antwort

0

Sie können es mit dem replacer Parameter:

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));

Docs hier: JSON.stringify()

+0

Der String "[10,16]" 'ist nicht der gleiche wie der Array' [10,16] ' –