2016-12-01 3 views
0

Ich habe eine JSON-Zeichenfolge, die in meiner Seite fest codiert ist, wird es für Einstellungen in meiner Anwendung verwendet.Ändern Sie JSON Zeichenfolge mit Javascript

Es gibt einen Anwendungsfall, bei dem ich eine Option zu diesen Einstellungen hinzufügen muss, wenn ein Wert wahr ist.

Von meinem Pseudo-Code unten versuche ich, eine "Einstellung" zur Hauptsaite hinzuzufügen, wenn ein Wert wahr ist.

Ich habe versucht, den JSON als ein Array zu speichern und dann meine neuen Daten hineinzuschieben, aber Java-Script beschwerte sich, dass es nicht im richtigen Format war.

Wie kann ich die zusätzlichen JSON-Daten zu meiner Hauptsaite hinzufügen?

var v = true, 
    test = { 
    "copySelected": { 
     "name": "Copy", 
     "icon": "fa-files-o" 
    }, 
    "sep1": "---------", 
    "success": { 
     "name": "Highlight: Green", 
     "icon": "fa-pencil" 
    }, 
    "info": { 
     "name": "Highlight: Blue", 
     "icon": "fa-pencil" 
    }, 
    "warning": { 
     "name": "Highlight: Yellow", 
     "icon": "fa-pencil" 
    }, 
    "danger": { 
     "name": "Highlight: Red", 
     "icon": "fa-pencil" 
    }, 
    "sep2": "---------", 
    "remove": { 
     "name": "Remove Highlight", 
     "icon": "fa-eraser" 
    }, 
    "sep3": "---------", 
    "addNote": { 
     "name": "Add Note", 
     "icon": "fa-file-text-o" 
    } 
} 

// I need to add this section to the above json at the end 
if(v){ 

    "sep4": "---------", 
    "removeUser": { 
     "name": "Remove User", 
     "icon": "fa-user-times" 
    } 

} 
+3

Sie haben keine JSON haben. JSON ist ein Textformat, das in Daten geparst werden kann. Du hast ein Objekt. So können Sie Eigenschaften wie jedes andere Objekt hinzufügen. –

Antwort

3

Was Sie zeigen, ist nur ein normales JavaScript-Objekt. Fügen Sie einfach Eigenschaften, um es als normal:

var v = true, 
 
    test = { 
 
    "copySelected": { 
 
     "name": "Copy", 
 
     "icon": "fa-files-o" 
 
    }, 
 
    "sep1": "---------", 
 
    "success": { 
 
     "name": "Highlight: Green", 
 
     "icon": "fa-pencil" 
 
    }, 
 
    "info": { 
 
     "name": "Highlight: Blue", 
 
     "icon": "fa-pencil" 
 
    }, 
 
    "warning": { 
 
     "name": "Highlight: Yellow", 
 
     "icon": "fa-pencil" 
 
    }, 
 
    "danger": { 
 
     "name": "Highlight: Red", 
 
     "icon": "fa-pencil" 
 
    }, 
 
    "sep2": "---------", 
 
    "remove": { 
 
     "name": "Remove Highlight", 
 
     "icon": "fa-eraser" 
 
    }, 
 
    "sep3": "---------", 
 
    "addNote": { 
 
     "name": "Add Note", 
 
     "icon": "fa-file-text-o" 
 
    } 
 
} 
 

 
// I need to add this section to the above json at the end 
 
if(v){ 
 

 
    test.sep4 = "---------"; 
 
    test.removeUser = { 
 
     name: "Remove User", 
 
     icon: "fa-user-times" 
 
    }; 
 

 
} 
 

 
console.log(test.sep4) 
 
console.log(test.removeUser);

Wenn Sie einen JSON-String erhalten hatte, dann einfach JSON.parse(string) rufen Sie würde und der Rückgabewert wäre ein Objekt, das Sie würde dann fügen Sie einfach Eigenschaften wie hier gezeigt. (Hinweis: das Objekt nun in Anführungszeichen eingeschlossen ist und nur einen String.)

 var v = true, 
 
     test = `{ 
 
     "copySelected": { 
 
      "name": "Copy", 
 
      "icon": "fa-files-o" 
 
     }, 
 
     "sep1": "---------", 
 
     "success": { 
 
      "name": "Highlight: Green", 
 
      "icon": "fa-pencil" 
 
     }, 
 
     "info": { 
 
      "name": "Highlight: Blue", 
 
      "icon": "fa-pencil" 
 
     }, 
 
     "warning": { 
 
      "name": "Highlight: Yellow", 
 
      "icon": "fa-pencil" 
 
     }, 
 
     "danger": { 
 
      "name": "Highlight: Red", 
 
      "icon": "fa-pencil" 
 
     }, 
 
     "sep2": "---------", 
 
     "remove": { 
 
      "name": "Remove Highlight", 
 
      "icon": "fa-eraser" 
 
     }, 
 
     "sep3": "---------", 
 
     "addNote": { 
 
      "name": "Add Note", 
 
      "icon": "fa-file-text-o" 
 
     } 
 
    }` 
 
    
 
    var result = JSON.parse(test); 
 

 
    // I need to add this section to the above json at the end 
 
    if(v){ 
 

 
     result.sep4 = "---------"; 
 
     result.removeUser = { 
 
      name: "Remove User", 
 
      icon: "fa-user-times" 
 
     }; 
 

 
    } 
 

 
    console.log(result.sep4) 
 
    console.log(result.removeUser);

Verwandte Themen