Wie lässt du JS denken, dass ein String JSON ist?
Ich habe eine Funktion, die nur funktioniert, wenn JSON-Objekt an sie übergeben wird. Wenn ich ihm eine Zeichenfolge mit demselben Format wie JSON übergebe, funktioniert dies nicht. Daher möchte ich diese Funktion glauben lassen, dass die an sie übergebene Zeichenfolge ein JSON ist. Die Zeichenfolge liegt tatsächlich im JSON-Format vor.
Ich habe auch folgendes versucht. Ich habe den String über Ajax eingegeben, mit dem Parameter "handle as" als "JSON", und als ich das Ergebnis an die Funktion übergeben habe, funktioniert es.
Also habe ich festgestellt, dass das Problem nicht bei der Zeichenfolge liegt. Wie konvertiere ich diesen String in JSON? Wenn ich dieselbe Zeichenfolge über eine Ajax-Anfrage erhalte und sie dann an die Funktion übergebe, funktioniert sie, während die direkte Übergabe nicht funktioniert.
Die Zeichenfolge lautet wie folgt:
{
"data": [
{
"id": "id1",
"fields": [
{
"id": "name1",
"label": "joker",
"unit": "year"
},
{"id": "name2", "label": "Quantity"},
],
"rows": [ data here....
and closing braces..
quelle
Antworten:
Wo
string
ist deine JSON-Saite?quelle
Sie können das
JSON.parse()
dafür verwenden.Siehe Dokumente bei MDN
Beispiel:
quelle
Ich hatte das gleiche Problem mit einer ähnlichen Saite wie Ihrer
Das Problem hierbei ist die Struktur der Zeichenfolge. Der JSON-Parser hat nicht erkannt, dass in diesem Fall zwei Objekte erstellt werden müssen. Also, was ich getan habe, ist irgendwie albern, ich habe nur meine Zeichenfolge neu strukturiert und die damit verbundene hinzugefügt, die
[]
der Parser erkannt hatIch hoffe es hilft,
Wenn jemand einen eleganteren Ansatz hat, teilen Sie ihn bitte mit.
quelle
myString
falsch konstruiert . Es ist keine Zeichenfolge und JSON ist falsch formatiert. Ihre zweite Zeile würde dann überflüssig. Folgendes sollte es sein:var myString = '[{"id":1,"field1":"someField"},{"id":2,"field1":"someOtherField"}]'
Ich weiß, dass dies ein ziemlich alter Beitrag ist, aber ich dachte, ich würde Klarheit schaffen, falls jemand ihn findet.$.parseJSON
woJSON.parse
nicht funktionierte und warf einen FehlerJSON.parse is not a function
Verknüpfung:-
http://api.jquery.com/jQuery.parseJSON/
quelle
Konvertieren Sie die Zeichenfolge mit Object Mapper in HashMap ...
new ObjectMapper().readValue(string, Map.class);
Intern verhält sich Map als JSON-Objekt
quelle
Übergeben Sie die Zeichenfolgenvariable an Json parse:
quelle
Data
ist bereits ein Objekt vorhanden, sodass es nicht analysiert werden muss. Sie benötigen einige Anführungszeichen für alle Ihre Daten, um daraus eine Zeichenfolge zu machen.Verwenden Sie einfach die
eval
Funktion.quelle
JSON.parse()
Funktion wird reichen.oder
Mit Jquery,
quelle
Nehmen wir an, Sie haben einen String wie
Beispiel: "Name: Lucy, Alter: 21, Geschlecht: weiblich"
`
quelle