json - 如何使用字典发布 JSON 对象?
问题描述
这是需要发布的 JSON 内容。
{
"getcart": {
"version": "1.0",
"account": "6566",
"username": "112",
"password": "xxxxxxxx",
"cartid": "57044d79",
} }
代码:
Dim jsonPost As New JsonPost("https://www.example.aspx")
Dim dictData As New Dictionary(Of String, Object)
dictData.Add("version", "1.0")
dictData.Add("account", "6566")
dictData.Add("username", "112")
dictData.Add("password", "xxxxxxxx")
dictData.Add("cartid", "57044d79")
Dim json As JObject = JObject.Parse(JsonPost.postData(dictData))
Dim response As String = JsonPost.postData(dictData)
MsgBox(response)
我得到的错误:
从 JsonReader 读取 JObject 时出错。路径'',第 0 行位置 0
我怎样才能解决这个问题?
解决方案
我不能用字典来做到这一点。但我能够将其作为字符串发布。
主要问题是在 Visual Basic 中声明一个包含对象的 JSON 字符串。这是我的做法:
Dim JsonData As String = "{'getcart':{
'version':'1.0',
'account':'6566',
'username':'112',
'password':'xxxxxxxx',
'cartid':'57044d79',
}}"
Dim Uri As String = "https://www."
Dim data = Encoding.UTF8.GetBytes(JsonData)
Dim result_post = SendRequest(New Uri(Uri), data, "application/json", "POST")
MsgBox(result_post)
Private Function SendRequest(uri As Uri, jsonDataBytes As Byte(), contentType As String, method As String) As String
Dim req As WebRequest = WebRequest.Create(uri)
req.ContentType = contentType
req.Method = method
req.ContentLength = jsonDataBytes.Length
Dim stream = req.GetRequestStream()
stream.Write(jsonDataBytes, 0, jsonDataBytes.Length)
stream.Close()
Dim response = req.GetResponse().GetResponseStream()
Dim reader As New StreamReader(response)
Dim res = reader.ReadToEnd()
reader.Close()
response.Close()
Return res
End Function
推荐阅读
- java - Android Studio:是否可以同时运行两个活动?
- gitlab - 更改 gitlab 运行器的克隆目录
- package - 在主函数(Scala)中无法检测到创建的单例对象
- c# - c# - 如何从 ac# 程序调用/链接 Web 应用程序上的工作流?
- java - 使用 selenium 上传文件时出现问题
- python - 主管无法运行 Gunicorn 命令
- mqtt - LabVIEW MQTT:阅读订阅主题时出现错误 66
- javascript - 如何动态更改按钮提交的bootstrap 4模态数据
- angular - 在 Angular 中使用带有烧瓶 API 后端的 cookie
- angular6 - 如何在 Angular 6 或更高版本中使用样式组件库