javascript - 如何读取看起来像 JSON 的自定义格式
问题描述
从文件导入数据时,这是结果之一:
{
id: 1234,
name: "Store name",
street: "Street",
house_number: "19",
postal_code: "12346",
city: "Brussel",
country: "NL",
formatted_opening_times: {2=>[09:00 - 22:00] 4=>[09:00 - 22:00] 6=>[10:00 - 18:00] 1=>[09:00 - 22:00] 5=>[09:00 - 20:00] 3=>[09:00 - 22:00] 0=>[09:00 - 22:00]},
open_now: true
}
我们能够显示数据,但在formatted_opening_times
. 我们想将其显示为:
周一:09:00 - 02:00
周二:09:00 - 22:00
...
我试图解析 JSON 中的数据并显示内容:
var opening_times = JSON.parse(storeSpecs.data.formatted_opening_times);
var content = "Monday: "
content += ${opening_times[0][2]}
但导致错误控制台说
未捕获的 SyntaxError:位置 1 处的 JSON 中的意外数字
希望有人可以提供帮助。
解决方案
那不是 JSON。一个技巧是将“=>”替换为“:”,将“[”或“]”替换为引号。
var org = "{2=>[09:00 - 22:00] 4=>[09:00 - 22:00] 6=>[10:00 - 18:00] 1=>[09:00 - 22:00] 5=>[09:00 - 20:00] 3=>[09:00 - 22:00] 0=>[09:00 - 22:00]}"
var jsonStr = org.replace(/([0-9]+)=>/g, '"$1":')
.replace(/\[/g,'"')
.replace(/\]/g, '",')
.replace(/,\}$/, '}')
var res = JSON.parse(jsonStr);
推荐阅读
- tensorflow - 如何在tensorflow的model_with_buckets中使用sampled_softmax_loss函数?
- spring - Spring WebSocket 出错
- python - 如何将整数添加到列表中的现有整数?
- r - 对相同的列表元素进行分组并计算其在 R 中的出现次数
- traefik - 使 Traefik 以 JSON 格式返回错误
- c++ - gcc 中的默认构造内联静态随机数引擎
- typescript - 如何转换 Observable
[]> 到 Observable ? - vue.js - 如何从vue中的父组件验证插槽中的表单?
- c++ - C++ - 强制 std::fstream 从磁盘读取
- cmake - CMake包含已安装库的路径