我有一个包含多个JSON对象的文件,这些对象没有用逗号分隔:
{
"field" : "value",
"another_field": "another_value"
} // no comma
{
"field" : "value"
}
字符串
每个独立对象都是有效的json对象。
有没有什么方法可以轻松处理此文件?
1.我知道这不是一个有效的JSON,但不幸的是,这个文件是由第三方工具生成的。我没有选择改变输出的方式。
1.我不能在运行之前打开文本编辑器并智能插入逗号/方括号,因为这是一个自动化的过程(我也不想编写打开文件并操作它的代码)。
在.NET中,有一个库具有此确切功能:https://stackoverflow.com/a/29480032/2970729https://www.newtonsoft.com/json/help/html/P_Newtonsoft_Json_JsonReader_SupportMultipleContent.htm
在Ruby中有什么等价物吗?
3条答案
按热度按时间8fq7wneg1#
只要你的文件是那么简单,你可能想做这样的事情:
字符串
izj3ouym2#
yajl-ruby gem支持在Ruby中处理串联的JSON。解析器可以从String或IO读取数据。每个完整的对象被生成一个块。
字符串
有关其他选项(缓冲区大小、符号化密钥等),请参见documentation。
sshcrbum3#
如果您知道数据将是有效的JSON文档,则可以使用此方法将字符串拆分为文档,然后解析每个文档。
字符串
这将扫描字符串中的
{
、}
或字符串。每次它命中{
,它将深度增加1。每次它击中}
,深度减少1。每次深度为零时,您就知道已经到达了文档的末尾,因为您有平衡大括号。正则表达式还必须匹配字符串,这样它就不会意外地计算字符串中的大括号,例如。{ "foo": "ba}r" }
的值。