1

我之前问过这个问题,现在我遇到了另一个类似的 JSON 字符串的问题。

这是我的 JSON 字符串:

{"responseObject":{"code":"0","message":"HI","url":"www.abc.com","token":"{\"token\":\"abcdef\",\"id\":123}"}}

这是我的 dserialize 代码,它不起作用:

var def = new
        {
            code = string.Empty,
            message = string.Empty,
            url= string.Empty,
            token = new {token = string.Empty}
        };

        var response = JsonConvert.DeserializeAnonymousType(data, def);

        var innerDef = new { token= string.Empty, id= string.Empty };

        var deserializedInner = JsonConvert.DeserializeAnonymousType(response.token.token, innerDef);
4

2 回答 2

2

你有两个主要问题:

  1. 你没有考虑responseObject到。
  2. 你给了外层token错误的类型。它是一个包含 JSON 的字符串,而不是一个对象。

这有效:

var def = new
{
    responseObject = new
        {
            code = string.Empty,
            message = string.Empty,
            url = string.Empty,
            token = string.Empty
        }
};

var response = JsonConvert.DeserializeAnonymousType(data, def);

var innerDef = new { token = string.Empty, id = string.Empty };

var deserializedInner = 
  JsonConvert.DeserializeAnonymousType(response.responseObject.token, innerDef);
于 2013-11-21T17:08:36.740 回答
0

令牌是字符串而不是对象。“令牌”:“

于 2013-11-21T17:08:44.430 回答