json.net丢失逗号的例外

  • 本文关键字:net json c# json json.net
  • 更新时间 :
  • 英文 :


我正在使用json.net来删除json文件,很少有一个文件,其中字段可能在其值之后可能没有尾随逗号。这会导致审判,因为它期望逗号。我正在查看JSON.NET文档,找不到可以指定仍能解析该字段的选项。

json.net中是否有办法不必担心尾随逗号?

下面,如果说如果一个字段在其末端不包含逗号,则会抛出一个例外。

 {
        "Rack": "0015",
        "SampleType": "Specimen",
        "SID": "HBSAG-PC",
        "Position": 4,
        "AssayNumber": 149,
    "AssayVersion": 5,
        "Dilution": 1,
        "Replicate": 5
    "Track": 1,
    "Lane": 1,
        "ReagentMasterLot": "08559LF00",
        "ReagentSerialNumber": 65000,
        "Comment": "HBSAG Q IIPC"
    }

您发布的JSON无效。不是因为最后的逗号,而是因为中心缺少逗号

{
    "Rack": "0015",
    "SampleType": "Specimen",
    "SID": "HBSAG-PC",
    "Position": 4,
    "AssayNumber": 149,
    "AssayVersion": 5,
    "Dilution": 1,
    "Replicate": 5
    "Track": 1,
    "Lane": 1,
    "ReagentMasterLot": "08559LF00",
    "ReagentSerialNumber": 65000,
    "Comment": "HBSAG Q IIPC"
}

此行"Replicate": 5"Track": 1,缺少'5'和" track"之间的逗号。

校正后的JSON看起来像这样:

{
    "Rack": "0015",
    "SampleType": "Specimen",
    "SID": "HBSAG-PC",
    "Position": 4,
    "AssayNumber": 149,
    "AssayVersion": 5,
    "Dilution": 1,
    "Replicate": 5,
    "Track": 1,
    "Lane": 1,
    "ReagentMasterLot": "08559LF00",
    "ReagentSerialNumber": 65000,
    "Comment": "HBSAG Q IIPC"
}

您可以使用JSONLINT验证JSON。

JSON规格要求对象之间的名称/值对具有逗号。(另请参见json.org)。如果逗号丢失,JSON无效。因此,任何符合标准的解析器都将抛出包括json.net在内的例外。没有选择忽略缺失的逗号。您需要将JSON修复到源。

相关内容

  • 没有找到相关文章

最新更新