错误:附加信息:解析值时遇到意外字符:W。路径'',第2行,位置1

时间:2016-01-14 12:23:01

标签: c# php json datagridview

  

“Newtonsoft.Json.JsonReaderException”类型的未处理异常   发生在Newtonsoft.Json.dll

     

其他信息:解析时遇到意外的字符   值:W。路径'',第2行,第1位。

这对我来说是个问题,因为我使用的是一个应用程序(用C#开发)。我发现获取信息的方式是:创建一些PHP文件,托管在我的服务器上,将本地连接到数据库并以JSON格式返回信息。然后我需要更改我的C#应用​​程序以使用这些JSON。在c#中使用Json.NET将JSON从PHP显示到DataGridView

编码

using Newtonsoft.Json;

using System;

using System.Collections.Generic;

using System.IO;

using System.Net;

using System.Text;

using System.Windows.Forms;


namespace HTTTPRESPONSE

{

class User

{

    [JsonProperty("userid")]
    public string userid { get; set; }

    [JsonProperty("password")]
    public string password { get; set; }

    [JsonProperty("first_anme")]
    public string first_name { get; set; }

    [JsonProperty("last_name")]
    public string last_name { get; set; }

    [JsonProperty("role")]
    public string role { get; set; }

    [JsonProperty("active")]
    public string active { get; set; }

}
public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {

        WebClient wc = new WebClient();
        var data = wc.DownloadString("http://***.**.***.***/data.php");
        List<User> users = JsonConvert.DeserializeObject<List<User>>(data);
        dataGridView1.DataSource = users;
      }
   }
 }

行中出错:

List<User> users = JsonConvert.DeserializeObject<List<User>>(data);

我的参考资料是:http://www.codeproject.com/Articles/609027/Displaying-JSON-from-PHP-into-a-DataGridView-using

1 个答案:

答案 0 :(得分:2)

试试这个:

var request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = WebRequestMethods.Http.Get;
            request.Accept = "application/json";
            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();
            StreamReader streamreader = new StreamReader(stream);
            String json = streamreader.ReadToEnd();
            List<User> users = JsonConvert.DeserializeObject<List<User>>(json);
            dataGridView1.DataSource = users;