2016-07-25 35 views
-1

我收到皈依JSON来的DataTable给出错误

"[{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"National Savings Bank \",\"Bank_Name\":\"National Savings Bank \",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"NDB Bank\",\"Bank_Name\":\"NDB Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Peoples Merchant Bank\",\"Bank_Name\":\"Peoples Merchant Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"DFCC Vardhana Bank\",\"Bank_Name\":\"DFCC Vardhana Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Mercantile Merchant Bank\",\"Bank_Name\":\"Mercantile Merchant Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Union Commercial Bank\",\"Bank_Name\":\"Union Commercial Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Deutsche Bank\",\"Bank_Name\":\"Deutsche Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Hatton National Bank PLC\",\"Bank_Name\":\"Hatton National Bank PLC\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Seylan Merchant Bank\",\"Bank_Name\":\"Seylan Merchant Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Nations Trust Bank\",\"Bank_Name\":\"Nations Trust Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"HSBC\",\"Bank_Name\":\"HSBC\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Standard Chartered Bank\",\"Bank_Name\":\"Standard Chartered Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"State Bank of India\",\"Bank_Name\":\"State Bank of India\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Central Bank of Sri Lanka\",\"Bank_Name\":\"Central Bank of Sri Lanka\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Peoples Bank\",\"Bank_Name\":\"Peoples Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Pan Asia Banking Corporation PLC\",\"Bank_Name\":\"Pan Asia Banking Corporation PLC\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Central Bank\",\"Bank_Name\":\"Central Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Commercial Bank of Ceylon\",\"Bank_Name\":\"Commercial Bank of Ceylon\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Amana Bank\",\"Bank_Name\":\"Amana Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Other\",\"Bank_Name\":\"Other\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Bank of Ceylon\",\"Bank_Name\":\"Bank of Ceylon\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"ICICI Bank\",\"Bank_Name\":\"ICICI Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Foreign Banks\",\"Bank_Name\":\"Foreign Banks\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"MBSL Savings Bank\",\"Bank_Name\":\"MBSL Savings Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Citibank\",\"Bank_Name\":\"Citibank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Sampath Bank PLC\",\"Bank_Name\":\"Sampath Bank PLC\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Merchant Bank of Sri Lanka\",\"Bank_Name\":\"Merchant Bank of Sri Lanka\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"DFCC Bank\",\"Bank_Name\":\"DFCC Bank\",\"Status\":0},{\"Sync_Time\":\"\\/Date(1447935488033)\\/\",\"Bank_Code\":\"Seylan Bank PLC\",\"Bank_Name\":\"Seylan Bank PLC\",\"Status\":0}]" 

我使用的是从我的服务器以下JSON对象下面的方法将它转换成C#的DataTable

using (var streamReader = new StreamReader(httpResponse.GetResponseStream())) 
{ 
    var result = streamReader.ReadToEnd() ; 
    var table = JsonConvert.DeserializeObject<DataTable>(result); 
} 

,但它提供了以下错误;

类型的异常“Newtonsoft.Json.JsonSerializationException” 发生Newtonsoft.Json.dll但在用户代码中没有处理

其他信息:数据表读取时意外JSON令牌。 预计的StartArray,得到了String。路径'',第1行,位置3784.

有人可以请解释原因吗?

+1

你必须将其转换为对象,匹配json的结构 - 那么你可以映射到一个数据表,如果这实际上是你需要的 – Rick

+2

另外,你可能想要格式化json,所以它在thw问题中更具可读性 – Rick

回答

0

首先,创建一个类的对象结构:

[JsonObject] 
    public class BankData 
    { 
    [JsonProperty(PropertyName = "Sync_Time")] 
    public string Sync_Time { get; set; } 

    [JsonProperty(PropertyName = "Bank_Code")] 
    public string Bank_Code { get; set; } 

    [JsonProperty(PropertyName = "Bank_Name")] 
    public string Bank_Name { get; set; } 

    [JsonProperty(PropertyName = "Status")] 
    public int Status { get; set; } 
    } 

然后创建一个方法来解析您的JSON并将其转换为数组:

var jsonResponse = .....get json from server... 
    var res = JsonConvert.DeserializeObject<BankData[]>(jsonResponse); 
    // res is your array of BankData.... you can use it here...