【发布时间】:2019-11-13 00:10:14
【问题描述】:
我正在尝试使用下面的代码解析我的 json。我得到错误:
从 JsonReader 读取 JObject 时出错。路径 '',第 0 行,第 0 位置。
我认为这可能是因为我的 JSON 格式错误,所以我输出了它,它似乎还可以:
{
"serviceDeskId": "4",
"requestTypeId": "223",
"requestFieldValues": {
"summary": "test"
}
}
但现在我完全被困住了。谁能看到我哪里出错了?这真让我抓狂!!
正是在这一行触发了错误:
var jsonresponse = JObject.Parse(response);
完整代码sn-p:
req.ContentType = "application/json";
var json = JObject.Parse(
"{\"serviceDeskId\": \"4\",\"requestTypeId\": \"223\",\"requestFieldValues\": {\"summary\": \"" +
summary.Value + "\"}}");
jsonCheck = json.ToString();
using (var streamWriter = new StreamWriter(req.GetRequestStream()))
{
streamWriter.Write(json);
}
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
// Obtain a 'Stream' object associated with the response object.
Stream ReceiveStream = resp.GetResponseStream();
Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
String response = "";
// Pipe the stream to a higher level stream reader with the required encoding format.
StreamReader readStream = new StreamReader(ReceiveStream, encode);
response = readStream.ReadToEnd();
// Release the resources of stream object.
readStream.Close();
// Release the resources of response object.
resp.Close();
var jsonresponse = JObject.Parse(response);
任何帮助将不胜感激!
【问题讨论】:
-
在尝试解析之前尝试输出对文本文件的响应(或者如果在 Visual Studio 中 - 添加断点并检查值) - jsonreader 无法将响应识别为有效的 json。如果有错误 - 你会看到它。
-
服务器对您的 JSON 数据做了什么?它会简单地回声吗? IMO问题与编码(BOM)有关-也许服务器发送unicode而您正在阅读utf8?查看字节级别的响应。
标签: c# json stream streamreader jsonreader