2017-01-05 4 views
2

Ich möchte meine mehrere JSON-Zeichenfolge in einzelne Zeichenfolge konvertieren.Konvertieren Sie mehrere JSON-Zeichenfolge in eine Zeichenfolge

Dies ist mein mehrere JSON-String, wie kann ich es in einzelne Zeichenfolge konvertieren. Ich bekomme diese Zeichenfolge als Antwort von AJAX.

[ 
    { 
     "name1":"pizaa", 
     "count1":8 
    }, 
    { 
     "name2":"sandvich", 
     "count2":8 
    }, 
    { 
     "name3":"Burger", 
     "count3":8 
    }, 
    { 
     "name4":"TEST category", 
     "count4":8 
    }, 
    { 
     "name5":"TEST category", 
     "count5":8 
    }, 
    { 
     "name6":"TEST category", 
     "count6":8 
    }, 
    { 
     "name7":"final test", 
     "count7":8 
    }, 
    { 
     "name8":"final final test", 
     "count8":8 
    } 
] 

Ausgabe wie folgt:

[ 
    { 
     "name1":"pizaa", 
     "count1":8, 
     "name2":"sandvich", 
     "count2":8 
    } 
    ] 
+0

nicht sehr klar. Sie möchten alle Felder aller Objekte zu einem einzigen Objekt zusammenfügen? Warum denkst du nur an die ersten 2 Objekte? – pedrorijo91

+0

Ich möchte alle Felder beitreten. Ich zeigte nur die Ausgabe, die ich erhalten möchte, um diese Ausgabe zu erhalten – Cool

+1

@Cool - 'count' ist eine Eigenschaft eines Objekts. Wenn Sie die Objekte in einem zusammenführen, wird die Eigenschaft 'count' außer Kraft gesetzt, und die gewünschte Ausgabe ist unmöglich zu erreichen, es sei denn und bis Sie für alle Objekte denselben Wert für 'count' haben. – nikhil

Antwort

1

ich eine Lösung in jsfiddle erstellt haben. Hier habe ich JSON.stringify verwendet

var json = [{ 
 
    "name1": "pizaa", 
 
    "count": 8 
 
}, { 
 
    "name2": "sandvich", 
 
    "count": 8 
 
}, { 
 
    "name3": "Burger", 
 
    "count": 8 
 
}, { 
 
    "name4": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name5": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name6": "TEST category", 
 
    "count": 8 
 
}, { 
 
    "name7": "final test", 
 
    "count": 8 
 
}, { 
 
    "name8": "final final test", 
 
    "count": 8 
 
}] 
 

 
var finalString = ''; 
 
finalString = JSON.stringify(json); 
 
finalString = finalString.replace(/},{/g, ","); 
 
alert(finalString);

+0

Für zukünftige Referenz bitte fügen Sie einen Code in den Text der Antwort selbst als Links zu externen Quellen können und gehen tot. – Jhecht

+0

ok, danke für die Bearbeitung und Vorschlag :) @Jhecht –

0

Ich habe versucht, eine Lösung für Ihre Frage zu stellen. Werfen Sie einen Blick:

var data = [ 
 
    { 
 
     "name1":"pizaa", 
 
     "count1":8 
 
    }, 
 
    { 
 
     "name2":"sandvich", 
 
     "count2":8 
 
    }, 
 
    { 
 
     "name3":"Burger", 
 
     "count3":8 
 
    }, 
 
    { 
 
     "name4":"TEST category", 
 
     "count4":8 
 
    }, 
 
    { 
 
     "name5":"TEST category", 
 
     "count5":8 
 
    }, 
 
    { 
 
     "name6":"TEST category", 
 
     "count6":8 
 
    }, 
 
    { 
 
     "name7":"final test", 
 
     "count7":8 
 
    }, 
 
    { 
 
     "name8":"final final test", 
 
     "count8":8 
 
    } 
 
]; 
 

 
var result = []; 
 
var reduced = {}; 
 
data.map(function(a) { 
 
    for(var p in a) { 
 
    reduced[p] = a[p]; 
 
    } 
 
}); 
 
result[0] = reduced; 
 
console.log(result);

+0

Danke Man Es funktioniert. Vielen Dank – Cool

+0

Ich habe meinen Code leicht aktualisiert. Vielleicht möchten Sie einen anderen Blick haben. – cringe

0

Versuchen Sie folgendes:

var jsonData = [{"name1":"pizaa","count1":8},{"name2":"sandvich","count2":8},{"name3":"Burger","count3":8},{"name4":"TEST category","count4":8},{"name5":"TEST category","count5":8},{"name6":"TEST category","count6":8},{"name7":"final test","count7":8},{"name8":"final final test","count8":8}]; 
var modJson = {}; 
$.each(jsonData, function(index, val) { 
    modJson['name'+(index+1)] = val['name'+(index+1)]; 
    modJson['count'+(index+1)] = val['count'+(index+1)]; 
}); 
console.log(modJson); 
Verwandte Themen