JsonReaderException:解析值<时遇到意外字符。路径”,第0行,位置0

时间:2018-07-25 14:38:48

标签: c# mysql json asp.net-web-api localhost

我尝试研究类似的线程,但似乎找不到解决问题的方法。

我有ASP.NET WEB API和客户端UWP应用程序,可通过该API与本地数据库通信。

以下是获取数据的代码(客户端应用):

using (var client = new HttpClient())
        {
            var response = "";
            Task task = Task.Run(async () =>
            {
                response = await client.GetStringAsync(App.BaseUri); // sends GET request
            });
            task.Wait(); // Wait

            List<Product> ProductList = JsonConvert.DeserializeObject<List<Product>>(response); //ERROR HERE XX

            listViewAPI.ItemsSource = ProductList; // Bind the list
        }

我在App文件中的BaseUri看起来像这样:

public static Uri BaseUri = new Uri("http://localhost:58834/api/Product/"); // base API URL; ProductController

这是API中的控制器:

using ASPNetWebAPI.Models;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace ASPNetWebAPI.Controllers
{
[Route("api/Product")]
public class ProductController : ApiController
{
    // GET: api/product
    [HttpGet]
    public IEnumerable<Product> Get() 
    {
        return Model.ReadAllSQLProducts();
    }

}
}

这是API中的模型:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ASPNetWebAPI.Models
{
public class Model
{

    // Example data source
    private static List<Product> products = new List<Product>()
    {

    };

    // R part of CRUD
    public static List<Product> ReadAllSQLProducts()
    {
        return products;
    }

}

}

这是API中的实际产品类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace ASPNetWebAPI.Models
{
public class Product
{
    public int Id { get; set; }
    public string CreationDate { get; set; }
    public string Name { get; set; }
    public string Category { get; set; }

}
}

这是API Web.config的连接字符串:

<configuration>
  <connectionStrings>
<add name="ProductConn" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=ProductDB;Integrated Security=True;MultipleActiveResultSets=True"/>  
  </connectionStrings> 
...
</configuration>

由于我在本地主机中有多个数据库,因此我在connectionstring中明确告诉要连接的数据库。

我无法解决以下错误:

  

引发的异常:Newtonsoft.Json.dll中的'Newtonsoft.Json.JsonReaderException'   Newtonsoft.Json.dll中发生了类型为'Newtonsoft.Json.JsonReaderException'的异常,但未在用户代码中处理   解析值<时遇到意外字符。路径”,第0行,位置0。

0 个答案:

没有答案