当前位置: 首页 > 面试题库 >

无法解析JSON文件中的TAB

袁河
2023-03-14
问题内容

加载似乎包含 TAB 字符的JSON文件时,我遇到了解析问题。

当我转到http://jsonlint.com/时,我输入了带有TAB字符的部分:

{
    "My_String": "Foo bar.  Bar foo."
}

验证者抱怨:

Parse error on line 2:
{    "My_String": "Foo bar. Bar foo."
------------------^
Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['

这实际上是有问题的JSON文本的复制/粘贴。

我曾尝试加载该文件,jsonsimplejson没有成功。如何正确加载?我应该只预处理文件并用\t空格替换TAB 吗?还是我在这里想念的东西?

更新:

这也是一个有问题的示例simplejson

foo = '{"My_string": "Foo bar.\t Bar foo."}'
simplejson.loads(foo)

JSONDecodeError: Invalid control character '\t' at: line 1 column 24 (char 23)

问题答案:

从JSON标准:

在任何令牌之前或之后都可以使用无关紧要的空格。空格字符是:字符列表(U + 0009),换行符(U + 000A),回车符(U + 000D)和空格(U
+ 0020)。除令牌中允许使用空格外,任何令牌中都不允许使用空格。

这意味着在JSON字符串中不允许使用文字制表符。您需要将其转义为\t (在.json文件中):

{"My_string": "Foo bar.\t Bar foo."}

此外,如果在Python字符串文字中提供了json文本,则需要对标签进行两次转义:

foo = '{"My_string": "Foo bar.\\t Bar foo."}' # in a Python source

或使用Python原始字符串文字:

foo = r'{"My_string": "Foo bar.\t Bar foo."}' # in a Python source


 类似资料:
  • 我有一个json转储为 我编写了一个小代码来从json获取一些详细信息 这给我造成了错误: 回溯(最近一次调用):文件“python_opennms.py”,第24行,in x=get_nodes_opennms()文件“python_opennms.py”,第15行,in get_nodes_opennms for i in JSON.load(open('out.txt'))[“alarm”]

  • 我试图将一个JSON发送给一个REST控制器,它是用Spring编写的,不管我做了什么尝试,Jackson抛出了一个异常: 这是JSON: 有什么建议吗?

  • 问题内容: 我有一个档案。它的简化版本如下所示: 我运行此脚本来解析它: 但我收到此错误: 您能指出我所缺少的吗? 问题答案: 您的JSON数据集无效,您可以将它们合并为一个对象数组。例如 : 在JSON中,您不能有多个顶级对象,但可以有对象数组,并且它是有效的 如果需要,可以在此链接中看到更多的JSON数据集示例。 如果您想了解有关JSON数组的更多信息,请阅读w3schools JSON教程

  • 无法解析JSON文档:为什么我会得到这个错误。我正在尝试将参数传递给ajson主体以执行删除操作。数据使用TestNg表示法存储在一个数组中。当我运行测试时,它失败了,并显示消息“无法解析Json文档”

  • 问题内容: 当我在Kibana中看到结果时,我发现JSON中没有字段,而且,该字段仅包含。 是否可以解析json中的字段并将其显示在Kibana中?我有以下配置: 以及以下JSON文件: 问题答案: 是。您需要在配置中添加一个过滤器,如下所示。 在这里的文档中对此进行了很好的描述 编辑 json编解码器似乎不喜欢传入数组。单个元素与此配置一起工作: 输入: Logstash结果: } 现在有了一个

  • 我试图在web应用程序中使用打包在jar中的taglib。 jar文件包含: /WEB-INF/MyTagLib。tld,其中包含 /com/test/tags/MyTag.class 在我的Web项目中,我将jar文件放在中(部署后也在那里)。 我的jsp文件包含(除其他外): 部署在Tomcat 6上时,页面会显示: 绝对URI:http://test.com/tags无法在web中解析。xm