简体   繁体   English

如何在JavaScript中删除JSON字符串中的首尾双引号?

[英]How to Remove the First and Last double quotes in the JSON String in JavaScript?

Hi guys I wanted to remove the double quotes from the first and last places of the JSON string and I need to place one JSON object in another and I will display my code and my requirement. 嗨,大家好,我想从JSON字符串的开头和结尾删除双引号,我需要将一个JSON对象放在另一个对象中,我将显示我的代码和要求。

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

Here I am getting the string as following 在这里我得到的字符串如下

"{"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"}"}"

but I want the output as below 但我想要的输出如下

{"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"}}

I refactored your code so you can have a look how to do this getting rid of all these string operations: 我重构了您的代码,因此您可以看看如何摆脱所有这些字符串操作:

If you work with objects- just work with them and serialize to JSON when you've got what you need: 如果您使用对象-只要使用它们,并在需要时序列化为JSON:

fiddle: https://jsfiddle.net/myppwgmb/ 小提琴: https : //jsfiddle.net/myppwgmb/

And here is how I would have done it: 这就是我要做的事情:

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

fiddle: https://jsfiddle.net/myppwgmb/1/ 小提琴: https : //jsfiddle.net/myppwgmb/1/

Here you go 干得好

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

Or you can use .slice 或者您可以使用.slice

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM