Javascript/Node-将数据库中以文本形式存储的json转换为json对象

Javascript / Node - Convert json stored as text in DB to JSON object

本文关键字:json 存储 转换 对象 文本 Node- 数据库 Javascript      更新时间:2023-09-26

我一整天都在用这个问题头疼,我看了其他问题,他们都说用JSON.parse或类似的东西,但我一辈子都找不到任何工作。

我有一个对象以文本形式存储在PostGres DB:中

{149804: [75319, 2887526, 2938701],3136977: [3482061,3482062]}

我必须将其读取到一个变量中,并检查其属性,但我无法使其工作,如果我执行JSON.parse,我会在第一个数字{1…}上得到一个"SyntaxError:意外数字"。

我试着在不进行解析测试的情况下查看对象属性,但它一直说它没有那个属性(在数字周围有和没有):

if(selectedItems.hasOwnProperty(149804)){
    console.log("HAS 149804");
}else{
    console.log("DOESN'T HAVE 149804");
};

我在这里做错了什么?

这是因为您的JSON无效。

{149804:[731928875262938701],3136977:[34820613482062]}

应该是

{"149804":【75319,2887526,2938701】,"3136977":【34820613482062】

然后JSON.parse将工作。对象属性应该是字符串,而不是数字。

JSON中的键名/索引必须是字符串。合适的JSON是:
{
  "149804": [
    75319,
    2887526,
    2938701
  ],
  "3136977": [
    3482061,
    3482062
  ]
}