2

これはコードです:

            var jss = new JavaScriptSerializer();
            GResponse dict = jss.Deserialize<GResponse>(jsonText);

それらはクラスです:

public class GResponse
{
    public List<GResponseData> responseData { get; set; }
    public string responseDetails { get; set; }
    public int responseStatus { get; set; }

}

public class GResponseData
{
    public List<GResult> results { get; set; }
    public List<GCursor> cursor { get; set; }
}

public class GResult
{
    public string GsearchResultClass { get; set; }
    public string unescapedUrl { get; set; }
    public string url { get; set; }
    public string visibleUrl { get; set; }
    public string cacheUrl { get; set; }
    public string title { get; set; }
    public string titleNoFormatting { get; set; }
    public string content { get; set; }
}

public class GCursor
{
    public string resultCount { get; set; }
    public List<GPages> PagesItems { get; set; }
    public string estimatedResultCount { get; set; }
    public int currentPageIndex { get; set; }
    public string moreResultsUrl { get; set; }
    public string searchResultTime { get; set; }
}
public class GPages
{
    public string start { get; set; }
    public int label { get; set; }
}

私はかなり長い間、成功せずに次のjson文字列を逆シリアル化しようとしています。

{
    "responseData": {
        "results": [
            {
                "GsearchResultClass": "GwebSearch",
                "unescapedUrl": "irrelevant",
                "url": "irrelevant",
                "visibleUrl": "irrelevant",
                "cacheUrl": "irrelevant",
                "title": "irrelevant",
                "titleNoFormatting": "irrelevant",
                "content": "irrelevant"
            },
            {
                "GsearchResultClass": "GwebSearch",
                "unescapedUrl": "irrelevant",
                "url": "irrelevant",
                "visibleUrl": "irrelevant",
                "cacheUrl": "irrelevant",
                "title": "irrelevant",
                "titleNoFormatting": "irrelevant",
                "content": "irrelevant"
            }
        ],
        "cursor": {
            "resultCount": "irrelevant",
            "pages": [
                {
                    "start": "0",
                    "label": 1
                },
                {
                    "start": "28",
                    "label": 8
                }
            ],
            "estimatedResultCount": "irrelevant",
            "currentPageIndex": 0,
            "moreResultsUrl": "irrelevant",
            "searchResultTime": "0.27"
        }
    },
    "responseDetails": null,
    "responseStatus": 200
}

エラーはまったく表示されないようですが、dict.responseData.Countを確認すると、何らかの理由で常に0に等しくなります。前もって感謝します!

4

2 に答える 2

0

リストの場合resonseDataは、JSON でリスト/配列としても使用する必要があるため、次のように変更します。

"responseData": {
   "results": ...
   "cursor: ...
}

1 つの要素を含む配列へ:

"responseData": [
    {
        "results": ...
        "cursor: ...
    }
]
于 2013-03-07T19:07:39.030 に答える