javascript - JSON 字符串化重构

标签 javascript arrays json stringify

我有一个数据库,有多个单元格,每个单元格下都有值。

单元格为:id、名称、持续时间、日期和关系 ID

我有这个代码:

var result = {} 
properties.data.forEach(addToResult); //Get data from database using properties.data
    
instance.data.datavarb = JSON.stringify(result); //Send data after converted to JSON
      
function addToResult(pair,isjson){ //operations
if(isjson===true) result[pair.key] = JSON.parse(pair.value); else result[pair.key] = pair.value;
}

我面临两个问题:

1- 第一个问题: 这就是我如何获取转换为 JSON 后的值:

{"id":"1","name":"Football","duration":"12","date":"02-07-2018","relationid":null}

我需要怎样:

{id:1, name:"Football", duration:12, date:"02-07-2018", relationid:null}

需要删除数字(id、duration 和 relationid)以及 id、duration、relationid 值中的 "" 引号。

2-第二个问题: 在问题 1 中,只是为了向您展示我只解析了数据库中的三个值之一。当我解析它们时会发生什么?它是这样的:

{"id":"1, 2, 3","name":"Football, France, Belgium","duration":"12, 4, 3","date":"02-07-2018, 08-07-2018, 10-07-2018","relationid":", 1, 1"}

它不是一一创建,而是创建相同的标识符(id、name、duration)并将所有值放在相同的位置。为了我的目的,我需要:

{id:1, name:"Football", duration:12, date:"02-07-2018", relationid:null},
{id:2, name:"France", duration:4, date:"08-07-2018", relationid:1},
{id:3, name:"Belgium", duration:3, date:"10-07-2018", relationid:1}

非常感谢!!

最佳答案

您可以测试这些值是否看起来像整数,并解析它们。

function addToResult(pair,isjson){ //operations
    if(isjson===true) {
        result[pair.key] = JSON.parse(pair.value); 
    } else if (/^\d+$/.test(pair.value)) {
        result[pair.key] = Number(pair.value);
    } else {
        result[pair.key] = pair.value;
    }
}

关于javascript - JSON 字符串化重构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217936/

相关文章:

javascript - ng-options 不产生下拉框

javascript - Flask + Ajax 集成 : AttributeError: 'WSGIRequestHandler' object has no attribute 'environ'

python - 有没有更好的方法来索引这个数组?

java - 使用 Jersey 对查询数组参数进行排序

javascript - 谷歌地图 JavaScript API

javascript - 具有多个参数的 Ramda 管道

python - 如何将 numpy 数组转换为和弦音乐?

json - 如何在 shell >> 串行字符串 JSON >> ES _bulk 中对漂亮的 JSON 文件进行不 pretty-print ?

php - 强制 PHP json_encode() 将索引编码为字符串

iphone - 如何在控制台 Xcode 中打印?