将所有整数值转换为JSON中的字符串

use*_*782 9 java json

我的JSON字符串是:

{name:"MyNode", width:200, height:100}
Run Code Online (Sandbox Code Playgroud)

我想将其更改为:

{name:"MyNode", width:"200", height:"100"}
Run Code Online (Sandbox Code Playgroud)

这样所有整数值都成为字符串


我的主要代码是:

{
     "firstName": "John",
     "lastName": "Smith",
     "age": 25,
     "address":
     {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "xy": 10021
     },
     "IDNumber":
     [
         {
           "type": "home",
           "number": 1234
         },
         {
           "type": "fax",
           "number": 4567
         }
     ]
 }
Run Code Online (Sandbox Code Playgroud)

我需要所有整数值成为字符串

Mat*_*all 7

这是一个JavaScript对象文字,而不是JSON.无论如何...

var obj = {name:"MyNode", width:200, height:100};

for (var k in obj)
{
    if (obj.hasOwnProperty(k))
    {
        obj[k] = String(obj[k]);
    }
}

// obj = {name:"MyNode", width: "200", height: "100"}
Run Code Online (Sandbox Code Playgroud)

如果您实际使用的是JSON,而不是对象,JSON.parse()事先是字符串,JSON.stringify()之后是对象.

  • @user:这是你在提出问题时需要提及的事情,而不是在得到答案之后. (2认同)
  • @Laurent`Object.hasOwnProperty()`确保忽略对象原型中不需要的属性.请参阅黄色注释:https://developer.mozilla.org/en/JavaScript/Reference/Statements/for...in#Parameters (2认同)

HBP*_*HBP 6

如果必须对JSON字符串进行操作:

json = json.replace (/:(\d+)([,\}])/g, ':"$1"$2');
Run Code Online (Sandbox Code Playgroud)