JSON 错误:(422) 不可处理的实体换行?VB.NET

JSON error: (422) Unprocessable Entity Line Feed ? VB.NET

提问人:dashley 提问时间:7/26/2023 最后编辑:dashley 更新时间:7/28/2023 访问量:63

问:

JSON 请求有问题。我收到“远程服务器返回错误:(422) 无法处理的实体”。返回错误。我逐行浏览了 API 用户指南,只发现了一个异常。我不知道这是否会导致错误。

以下是完整的 JSON 语句:

{"service":{"level":"STD"},"payment":{"terms":"Prepaid","payer":"Third Party"},"transit":{"pickupDate":"20230728"},"commodities":[{"classification":"60","weight":"2600","length":"42","width":"42","height":"45","pieces":"2","packageingType":"PAT","description":"USED BOOKS","stackable":"Y"}],"origin":{"account":"","city":"Knoxville","stateProvince":"TN","postalCode":"37918","country":"USA"},"destination":{"account":"","city":"Atlanta","stateProvince":"GA","postalCode":"30306","country":null},"billTo":{"account":"0627227","name":"FMS","address":"3517 Neil Dr","city":"Knoxvile","stateProvince":"TN","postalCode":"37918","country":"USA"}}

以下是商品的用户指南示例;enter image description here

这是我发送的内容:

enter image description here

似乎(在我发送的内容中)在“商品”一词之后有一个换行符:[ {

正如 API 示例所示 “”commodities“ : [ {” 之间没有换行符 “[” 和 “{ ”。

魔术问题 *** 换行会导致错误吗,最重要的是如何摆脱它? 我对 JSON 非常陌生并且独自工作,因此任何帮助将不胜感激。

将 Load 调暗为新 fgtload

    Dim Item1 As New items

    With Item1
        .classification = ("60")
        .weight = ("2600")
        .length = ("42")
        .width = ("42")
        .height = ("45")
        .pieces = ("2")
        .packageingType = ("PAT")
        .description = ("USED BOOKS")
        .stackable = ("Y")
    End With



    Load.commodities.Add(Item1)


Public Class fgtload 'Primary wrapper
    Public service As New fgtservice
    Public payment As New fgtpayment
    Public transit As New fgttransit
    Public commodities As New List(Of Items)
    Public origin As New fgtorigin
    Public destination As New fgtdestination
    Public billTo As New fgtbillto
End Class

Public Class Items
    Public classification As String 'class  required
    Public weight As String '7max  lbs required
    Public length As String '3max required
    Public width As String '3max required
    Public height As String '3 max required
    Public pieces As String ' 5 max required
    Public packageingType As String 'required  PAT for Pallet , LSE for Loose
    Public description As String 'required
    Public stackable As String 'required
End Class
JSON vb.net

评论

1赞 Jimi 7/26/2023
如此处所示,这两个 JSON 部分都是无效的。第一个是从更大的 JSON 中剪下来的,第二个似乎是不完整的,但不清楚它是否是整个事情 -- 你必须发布你发送的完整 JSON 和文本,永远不要发布代码/堆栈跟踪/XML/JSON/其他人可能需要测试/验证的任何图像 -- 还要发布序列化这些类的代码 -- 换行符无关紧要, 除非看似换行符的内容是由导致 JSON 验证失败的特殊字符生成的
1赞 dbc 7/27/2023
请您编辑您的问题以将您的 JSON 作为文本而不是屏幕截图包含吗?关于堆栈溢出图像不应用于文本内容,请参阅为什么不应上传代码/数据/错误的图像?一个最小的可重复示例,显示您尝试过但不起作用的示例将最大限度地提高您获得帮助的机会。请参阅如何提问
1赞 dbc 7/27/2023
就空格而言,根据原始的 JSON 提案以及 RFC 8259可以在任何一对标记之间插入空格。因此,字符串文字之外的换行符的存在与否并不重要(除非接收系统破坏了 JSON 解析)。
0赞 dbc 7/27/2023
400 vs 422 对数据 POST 的响应表明 422 应该用于格式良好但语义无效的 JSON,因此您的错误可能是远程服务出于某种原因拒绝了您发送的值——但我们无法猜测该原因可能是什么,因为您没有告诉我们有关该服务或它期望的 JSON 的信息。
0赞 Hel O'Ween 7/27/2023
我对JSON不是很熟悉,但作为一名程序员,我知道括号总是成对出现,而您的示例似乎缺少结束“]”

答: 暂无答案