簡體   English   中英

使用json.net反序列化和對象問題

[英]Problem deserializing and object using json.net

使用json.net將json反序列化為列表。 我的問題是我收到以下消息:

Newtonsoft.Json.JsonReaderException:'解析值時遇到意外字符:[。 路徑“數據”,第1行,位置9。”

我的代碼如下所示:

Dictionary<string, string> JSONObj = JsonConvert.DeserializeObject<Dictionary<string, string>> (response.Content.ToString());

和...

internal class Projects
{
    internal object id;
    internal string gid;
    internal string name;
    internal string resource_type;
}

response.Content.ToString()看起來像這樣:

{“ data”:[{“ id”:123456,“ gid”:“ 789”,“ name”:“工具-啟動工具”,“ resource_type”:“項目”},{“ id”:123456,“ gid “:” 789“,” name“:”保留詳細信息“,” resource_type“:”項目“}]}

我的json驗證。 我敢肯定,這是json的格式,但是我對理解錯誤的理解還不夠。 我的方法有什么問題? 如何獲取格式化的數據以與項目列表協調一致?

根據JSON,有一些根對象(“數據”),因此您的模型應如下所示:

public class Project
{
    public int id { get; set; }
    public string gid { get; set; }
    public string name { get; set; }
    public string resource_type { get; set; }
}

public class RootObject
{
    public List<Project> data { get; set; }
}

然后用於解析您的代碼也將更改:

var JSONObj = JsonConvert.DeserializeObject<RootObject>(response);

我也建議想了約類名第二-你的類實際上是只有一個Project ,不是任何組/集合Projects
另外,將id類型設置為object似乎會增加不必要的開銷-它可以簡單地為int / long

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM