【问题标题】:How to add double quotation in each index of json object如何在json对象的每个索引中添加双引号
【发布时间】:2014-11-11 18:05:31
【问题描述】:

为了连接(发送数据)到 SMS API 服务,我需要将我的数据转换为站点可以理解的内容。(他们的 API 无法接收标准 json)

例如我有一个这样的对象:

var data = {
    message: ['hi', 'hello'],
    receptor: ['12345678', '87654321'],
    sender: ['1000' , '2000']
}

我需要把它转换成这样的:

{
    message: "['hi', 'hello']",
    receptor: "['12345678', '87654321']",
    sender: "['1000' , '2000']"
}

我写了一个简单的代码来转换它:

for( var index in data ){
    new_data[index] =  "["+ data[index]  ;
    for( var j in data[index] ){
        new_data[index][j] = '"' + data[index][j] + '"';
    }
    new_data[index] += "]";
}

但删除了数组中的单引号并返回:

{
    message: "[hi, hello]",
    receptor: "[12345678, 87654321]",
    sender: "[1000 , 2000]"
}

我该怎么做?

我知道将它们转换为字符串并使用它可以解决问题,但我希望我能找到更好的方法。

【问题讨论】:

  • 所以您希望将数组转换为字符串形式并删除属性名称周围的引号?
  • 不,我想找到更好的方法。
  • 我认为您可能必须编写自己的函数来执行此操作,这似乎是一个非常具体(和奇怪)的格式要求。

标签: javascript json node.js


【解决方案1】:
var data = {
    message: ['hi', 'hello'],
    receptor: ['12345678', '87654321'],
    sender: ['1000' , '2000']
}

for(key in data){
    data[key] = '[\'' + data[key].join("','") + '\']';
}
//output
{
message: "['hi','hello']", 
receptor: "['12345678','87654321']", 
sender: "['1000','2000']"
}

for(key in data){
    data[key] = '"[\'' + data[key].join("','") + '\']"';
}
//output
{
message: ""['hi','hello']"", 
receptor: ""['12345678','87654321']"", 
sender: ""['1000','2000']""
}

for(key in data){
    data[key] = JSON.stringify(data[key]);
}
//output
{
message: "["hi","hello"]", 
receptor: "["12345678","87654321"]", 
sender: "["1000","2000"]"
}

【讨论】:

  • 第一个代码输出是这样的:message: '[\'hi\',\'hi\']'
【解决方案2】:

var new_data = JSON.parse(data); 也会打印出您要求的内容

【讨论】:

  • 欢迎来到Stack Overflow。我想你可能误解了 OP 的问题。 OP 有一个 JavaScript 对象,需要将其转换为某种字符串化形式。 JSON.stringify 会更接近 OP 正在寻找的东西,但似乎 OP 正在寻找的东西不是 JSON。
  • 对,我没注意抱歉。谢谢你的欢迎。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 2013-05-14
  • 2017-04-26
  • 1970-01-01
  • 2020-05-26
相关资源
最近更新 更多