【问题标题】:Cast a string to JSON using JavaScript使用 JavaScript 将字符串转换为 JSON
【发布时间】:2018-12-17 15:26:55
【问题描述】:

我有一个string,看起来像这样:

"{""c1"": ""value1"", ""c2"": ""value2""}"

如您所见,它是 JSON 格式。我将它存储在 SQLITE 数据库中,然后我使用以下 Javascript 代码以 JSON 格式再次获取它:

  var req= "SELECT json_column from my_table";
  var result = execSQL(req);
  for (var index in res) {
    var row= res[index];
    consoleLog("test getad ", JSON.parse(row["json_column "]));

但我收到此错误:

<JSContext: 0x1c0044aa0> SyntaxError: JSON Parse error: Expected '}' 

您能告诉我为什么会出现此错误吗?我花了几个小时试图解决它,但没有成功。如果有必要,我可以更改string 格式,我只需要从SQLITE 再次获取它作为JSON 对象。 提前谢谢你。

【问题讨论】:

  • 如您所见,它是 JSON 格式。 不是,这是无效的 json 语法
  • 我更新了我的答案以更清楚。让我知道它是否足够好并回答您的问题,如果没有,我还能做些什么来使它有用。
  • JavaScript也是无效的。

标签: javascript json sqlite


【解决方案1】:

你的那个字符串不是有效的 JSON,这个是,基于你的字符串内容。

'{"c1": "value1", "c2": "value2"}'

如您所见,键/值对用一个双引号 " 包围,而不是两个,整个字符串用单引号 ' 包围。如果整个字符串使用双引号,则需要转义内部的,就像这样

"{\"c1\": \"value1\", \"c2\": \"value2\"}"

关于JSON的进一步阅读,这篇文章有很多

这是一个显示其输出的示例

// these gets properly printed

// correct formatted JSON
console.log( JSON.parse('{"c1": "value1", "c2": "value2"}') );

// correct formatted JSON, outer doulbe quotes and inner, escaped one's
console.log( JSON.parse("{\"c1\": \"value1\", \"c2\": \"value2\"}") );

// yours wrapped with single quotes and inner double quotes, changed to one
console.log( JSON.parse('{""c1"": ""value1"", ""c2"": ""value2""}'.replace(/""/g, '"')) );


// these generates script error

// yours wrapped with single quotes
console.log( JSON.parse('{""c1"": ""value1"", ""c2"": ""value2""}') );

// yours as is, and had to comment this out, as if not, it crashes itself and all the above
//console.log( JSON.parse("{""c1"": ""value1"", ""c2"": ""value2""}") );

【讨论】:

    【解决方案2】:

    您的字符串格式不正确。这就是 JSON.parse() 无法读取它的原因。

    你的字符串:

    "{""c1"": ""value1"", ""c2"": ""value2""}"
    

    试着把它变成这样:

    '{"c1": "value1", "c2": "value2"}'
    

    【讨论】:

    • 现在您的最后 3 个答案,从这个开始,是与现有答案相同的解决方案,在您之前发布了很长时间。你为什么这样做? ...这是不合适的,你不应该这样做。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多