我正在尝试使用以下代码解析json。我收到错误消息:
从JsonReader读取JObject时出错。路径”,第0行,位置0。
我认为这可能是因为我的JSON格式不正确,所以我已经输出了它,而且看起来还可以:
{
"serviceDeskId": "4",
"requestTypeId": "223",
"requestFieldValues": {
"summary": "test"
}
}
但是现在我完全被卡住了。谁能看到我要去哪里错了?这真让我抓狂!!
在此行上触发了错误:
var jsonresponse = JObject.Parse(response);
完整的代码段:
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);
任何帮助将不胜感激!
答案 0 :(得分:1)
我只在输入完全为空字符串时看到此错误。检查您的文本是否符合该变量。
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
public class Program
{
public static void Main()
{
var json = JObject.Parse("");
Console.WriteLine(json);
}
}
答案 1 :(得分:0)
啊,我相信我以前有这个问题。我发现Visual Studio以不同的方式保存json文件。您可以通过以下方式进行检查:
[注意:使用其他十六进制编辑器可以完成之前的步骤。]
打开文件后,以其十六进制格式,查看文件是否以...{..
开头或以..}..
结尾,并删除起始点“ ..”和结束点“ ..”,以及保存文件,然后重试。
如果在Visual Studio中创建一个json文件,则会发生这种情况。
或者,您可以使用其他程序(例如Notepad ++)创建一个新文件并使用该文件。
希望这会有所帮助。