json 使用JavaScript替换字符串中的值[已关闭]

xesrikrc  于 2023-01-27  发布在  Java
关注(0)|答案(4)|浏览(193)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我想使用JavaScript将以下JSON字符串中的所有字符串值替换为空字符串,将true替换为false,并将数组(方括号)中的1替换为0。
补充信息:JSON字符串放在字符串类型变量中。
注意:属性是动态的。这意味着有时我可以有手机,将有一个情况下,这个属性将丢失。所以引用属性名称不是一个选项。
我的JSON字符串:

{"MobilePhone":true,"ToDeleteIndex":1,"BusinessPhone":true,"ApplicantType":"HOLDER","Title":"Mr","FirstName":"Andrew","RemoveApplicant":[1,null]}

预期成果:

{"MobilePhone":false,"ToDeleteIndex":1,"BusinessPhone":false,"ApplicantType":"","Title":"","FirstName":"","RemoveApplicant":[0,null]}
xfyts7mz

xfyts7mz1#

JSON.parse之后,尝试以下操作:

const data = {
    "MobilePhone": true,
    "ToDeleteIndex": 1,
    "BusinessPhone": true,
    "ApplicantType": "HOLDER",
    "Title": "Mr",
    "FirstName": "Andrew",
    "RemoveApplicant": [1, null]
  }
  //string to empty string, true to false, and 1 to 0 (in array)
trans = {
  string: function(x) {return x= ''},
  boolean: function(x) {
    if (x)
      x = false;
    return x;
  },
  object: function(x) {
    if (Array.isArray(x))
      x.map(function(z) { if (z === 1) z = 0; return z});
    return x;
  }
}

const r = Object.keys(data).map(function(x) {
  const val = trans[typeof(data[x])] ? trans[typeof(data[x])](data[x]) : data[x];
  return {[x]: val};
})
console.log(r)
g52tjvyc

g52tjvyc2#

试试这个DEMO

var data = JSON.parse('{"MobilePhone":true,"ToDeleteIndex":1,"BusinessPhone":true,"ApplicantType":"HOLDER","Title":"Mr","FirstName":"Andrew","RemoveApplicant":[1,null]}');

for (prop in data) {
  if (data[prop] === true) {
    data[prop] = false;
  } else if (typeof data[prop] == 'string') {
    data[prop] = '';
  } else if (Array.isArray(data[prop])) {
   data[prop] = data[prop].map(function(el) { return (el == 1) ? el = 0 : el});
  }
}

document.write(JSON.stringify(data));
ef1yzkbh

ef1yzkbh3#

你可以在javascript中使用string Replace()函数。
如果您的Json位于字符串变量中,则执行如下操作;

var str = "{'MobilePhone':true,'ToDeleteIndex':1}";//your json as string
var res = str.replace(new RegExp("true", 'g'), "false"); //replace true to false
var res = res.replace(new RegExp("1", 'g'), "0"); //replace 1 to 0
Console.Log(res); //{'MobilePhone':false,'ToDeleteIndex':0}

但是,要小心,因为此代码将所有出现的true替换为false,将所有出现的1替换为0,而不管它们在字符串中的位置。

ha5z0ras

ha5z0ras4#

enter code here<!DOCTYPE html>

enter code here

阵列

请到一楼
字母文本=文档.getElementById(“演示”).内部HTML;文档.getElementById(“演示”).内部HTML =文本+“
“+文本.替换(“第一”、“第二”);

相关问题