使用 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);

使用 c# Visual Studio 解析 JSON 时出错

我很确定当你执行你的客户端时。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 -->