使用 c# Visual Studio 解析 JSON 时出错
本文关键字:JSON 出错 解析 Studio Visual 使用 | 更新日期: 2023-09-27 18:33:12
我正在尝试使用Visual Studio 2012和c#的控制台应用程序获取我的JSON数据。这是我的代码:
using System.Linq;
using System.Text;
using System.Net;
using System.Web.Services;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Web.Script.Serialization;
using System.Web.Helpers;
using System.IO;
using System.Runtime.Serialization.Json;
namespace JSONTest
{
class Program
{
static void Main(string[] args)
{
//create a new instance of Webclient and use DownloadString method from the Webclient class to extract download html
WebClient client = new WebClient();
string Json1 = client.DownloadString("http://waelhamda.host22.com/localRobot.php");
JObject objParserd = JObject.Parse(Json1);
Console.WriteLine(Json1);
Console.ReadLine();
}
}
}
我在测试应用程序时收到此错误消息:
读取完 JSON 内容后遇到的其他文本:<。 路径 '',第 3 行,位置 0。
它位于以下代码行中:JObject objParserd = JObject.Parse(Json1);
我很确定当你执行你的客户端时。DownloadString() 你收到:
{"success":1,"message":"Post Available!","posts":[{"ID":"3","Name":"Wael","Code":"0000"}]}
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->
这就是解析在第 3 行失败的原因。
编辑
如果您无法控制 URL 返回的内容,则愚蠢的解决方法是仅获取第一行并在 JSON 中解析该行。
var firstLine = Json1.Split(Environment.NewLine).FirstOrDefault();
JObject objParserd = JObject.Parse(firstLine);
页面的原始源代码如下。这不是真正的 JSON。文件中不应有其他内容,并注意制表符和空格。确保任何 JSON 页面中没有其他内容。
这就是亚历克斯·瓦热夫所说的。
{"success":1,"message":"Post Available!","posts":[{"ID":"3","Name":"Wael","Code":"0000"}]}
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->