我遇到的问题是我的JSON服务没有被调用,原因可能是格式错误。
尽管如此,我还是不明白它有什么不妥。我读到了它,发现撇号不应该逃脱。当我逃离它们时,它也无法工作。
"{
"fields": [
{
"Text": "PaymentReminders",
"Value": "'yes'"
}
]
}"
是的,我真的需要'是的'在撇号下。
我期待服务器端的字符串,然后我反序列化。它没有撇号。
谢谢!
EDIT1:
这是在服务器上接受的结构:
Public Class TemplateField
Public Property Value() As String = "val"
Public Property Text() As String = "tex"
End Class
Public Class FieldsList
Public Property fields() As TemplateField()
End Class
它会像这样反序列化:
Dim jsSerializer As New JavaScriptSerializer
Dim fieldsArray As EventInfoDetails.FieldsList
fieldsArray = jsSerializer.Deserialize(Of EventInfoDetails.FieldsList)(fields)
并且一切正常,除非它包含撇号。就像我不能在字符串中插入撇号。
答案 0 :(得分:0)
JSON不仅不需要来转义撇号,而且事实上不允许这样做(与JavaScript相反)。所以你的
"Value": "'yes'"
完全有效的JSON。这是,除非您在JavaScript代码中将此JSON作为字符串文字插入,在这种情况下,JavaScript是要求您将'
作为\'
转义的JavaScript(您需要两个)转义,JSON和JavaScript之上的一个。)
无论如何,你的代码有些奇怪:
"{
"fields": [
{
"Text": "PaymentReminders",
"Value": "'yes'"
}
]
}"
为什么整个JSON结构都被引号("
)包围?它是其他编程语言中的任何类型的字符串文字吗?在这种情况下,您可能需要遵循该语言对这些引用("
)符号的转义规则。例如,Java和VB都会使用\"
......