2016-08-03 5 views
-2

Hallo Leute, ich wollte die Anführungszeichen von der ersten und letzten Stelle der JSON-Zeichenfolge entfernen und ich muss ein JSON-Objekt in einem anderen platzieren, und ich werde meinen Code und meine Anforderung anzeigen.Wie entfernt man die ersten und letzten doppelten Anführungszeichen in der JSON-Zeichenfolge in JavaScript?

var sysMsg = new Object(); 
    sysMsg.timestamp = "100"; 
    sysMsg.seq = "5"; 
    sysMsg.serviceid = "21"; 
    sysMsg.srcip = "192.168.0.1"; 
    sysMsg.ver = "1.0"; 
var sysString= JSON.stringify(sysMsg); 
window.alert(sysString);   

var systmMsg = new Object(); 
systmMsg.sys = sysString; 
// JSON.stringify(hdrString); 
var sysFinal= JSON.parse(systmMsg); 
alert(sysFinal); 
sysFinal = sysFinal.replace(/\\/g, ""); 
window.alert(sysFinal);        

var hdrMsg = new Object(); 
hdrMsg.appcontext = "context"; 
hdrMsg.appname = "appName"; 
hdrMsg.appid = "identifier"; 
hdrMsg.cmd = "command"; 
hdrMsg.timeout = "500"; 
hdrMsg.option = "optionCommand"; 
var hdrString= JSON.stringify(hdrMsg); 
//window.alert(hdrString); 
var hdrFinal = new Object(); 
hdrFinal.hdr = hdrString;        
var hdrFinalMsg= JSON.stringify(hdrFinal); 
hdrFinalMsg = hdrFinalMsg.replace(/\\/g, ""); 
window.alert(hdrFinalMsg); 

var dataMsg = new Object(); 
dataMsg.CntrlID = "6"; 
dataMsg.Devinst = "1"; 
dataMsg.btnstatus = "btnStatus"; 
dataMsg.DevID = "33"; 
dataMsg.value = "true"; 
dataMsg.status = "errorStatus"; 
var dataString = JSON.stringify(dataMsg); 
//window.alert(dataString); 

var dataFinal = new Object(); 
dataFinal.data = dataString;        
var dataFinalMsg= JSON.stringify(dataFinal); 
dataFinalMsg = dataFinalMsg.replace(/\\/g, ""); 
window.alert(dataFinalMsg); 

var appData = hdrFinalMsg.concat(dataFinalMsg); 
var appFinal = new Object(); 
appFinal.app = JSON.stringify(appData); 
var appFinalMsg= JSON.stringify(appFinal); 
appFinalMsg = appFinalMsg.replace(/\\/g, ""); 
window.alert(appFinalMsg); 

var finalData = appFinalMsg.concat(sysFinal); 
var finalMsg= JSON.stringify(finalData); 
finalMsg = finalMsg.replace(/\\/g, ""); 
window.alert(finalMsg); 

Hier erhalte ich die Zeichenfolge als

folgende
"{"app":""{"hdr":"{"appcontext":"context","appname":"appName","appid":"identifier","cmd":"command","timeout":"500","option":"optionCommand"}"}{"data":"{"CntrlID":"6","Devinst":"1","btnstatus":"btnStatus","DevID":"33","value":"true","status":"errorStatus"}"}""}{"sys":"{"timestamp":"100","seq":"5","serviceid":"21","srcip":"192.168.0.1","ver":"1.0"}"}" 

aber ich möchte die Ausgabe wie unten

{"app":{"data":{"Cntrl.ID":"6","Dev.inst":"1","btn.status":"btnStatus","Dev.ID":"33","value":"true","status":"errorStatus"},"hdr":{"appcontext":"context","appname":"appName","appid":"identifier","cmd":"set","timeout":"500","option":"optionCommand"}},"sys":{"srcip":"192.168.0.1","ver":"1.0","serviceid":"21","seq":"5","timestamp":"100"}} 

Antwort

1

ich Refactoring Code, so dass Sie einen Blick haben können, wie dies zu tun loszuwerden all diesen String-Operationen:

Wenn Sie mit Objekte- nur mit ihnen arbeiten, arbeiten und serialisiert zu JSON, wenn Sie‘ bekam habe, was Sie brauchen:

Geige: https://jsfiddle.net/myppwgmb/

Und hier ist, wie würde ich es getan haben:

var sys = { 
    timestamp: "100", 
    seq: "5", 
    serviceid: "21", 
    srcip: "192.168.0.1", 
    ver: "1.0", 
}; 

var hdr = { 
    appcontext: "context", 
    appname: "appName", 
    appid: "identifier", 
    cmd: "command", 
    timeout: "500", 
    option: "optionCommand", 
}; 

var data = { 
    CntrlID: "6", 
    Devinst: "1", 
    btnstatus: "btnStatus", 
    DevID: "33", 
    value: "true", 
    status: "errorStatus", 
} 

var dataFinal = { 
    app: { 
    data: data, 
    hdr: hdr, 
    }, 
    sys: sys 
} 

alert(JSON.stringify(dataFinal)); 

feige: https://jsfiddle.net/myppwgmb/1/

+0

Vielen Dank Sir .. für Ihre Hilfe, Incase, wenn ich die Daten im Array dynamisch bekommen muss, wie kann ich an diesem Punkt der Situation tun. Vielen Dank im Voraus –

+0

so .. wie sieht Ihr Array aus? Du hast noch keinen angegeben. – Wolfgang

+0

Ich muss die Daten ctrlID DevID und alle aus einer anderen Datei und ich muss sie jedes Mal aktualisieren. also habe ich dich gefragt, wie man die Werte dynamisch aktualisiert –

-1

Hier gehen Sie

var yourString = "{JsonString}"; 
var result = yourString.substring(1, yourString.length-1); 

Oder Sie verwenden .slice

var result = yourString.slice(1, -1); 
+0

Danke! Funktioniert super (Ich benutze das Slice, nicht sicher, warum Sie Teilstring verwenden möchten). Wenn Sie JSON.stringify verwenden müssen, fügt es führende und nachfolgende doppelte Anführungszeichen hinzu, das kümmert sich sehr gut darum: JSON.Parse (JSON.stringify (STRING_WITH_INVALID_JSON_CHARACTERS) .slice (1, -1)) – Tolga

Verwandte Themen