2
У меня есть проблема с десериализации JSONC#: Deserialize JSON
Это мой JSON файл
{
"api_result": 1,
"api_result_msg": "OK",
"api_data": {
"api_basic": {
"api_nickname": "David",
},
"api_p_bgm_id": 112,
"api_parallel_quest_count": 5
}
}
Класс соответствия (генерируется специальной пастой в визуальной студии):
public class Rootobject
{
public int api_result { get; set; }
public string api_result_msg { get; set; }
public Api_Data api_data { get; set; }
}
public class Api_Data
{
public Api_Basic api_basic { get; set; }
public int api_p_bgm_id { get; set; }
public int api_parallel_quest_count { get; set; }
}
public class Api_Basic
{
public string api_nickname { get; set; }
}
И мой код:
string JJ = "{\"api_result\":1,\"api_result_msg\":\"OK\",\"api_data\":{\"api_basic\":{\"api_nickname\":\"David\"},\"api_p_bgm_id\":112,\"api_parallel_quest_count\":5}}";
Rootobject result = JsonConvert.DeserializeObject<Rootobject>(JJ);
Api_Basic nickname = JsonConvert.DeserializeObject<Api_Basic>(JJ);
Console.WriteLine("result:" + result.api_result_msg);
Console.WriteLine("nickname:" + nickname.api_nickname);
Выход:
result:OK <---success
nickname: <---fail
Я пробовал:
Rootobject nickname = JsonConvert.DeserializeObject<Rootobject>(JJ);
Console.WriteLine(nickname.api_basic.api_nickname);
Но это не работает.
Что я делаю неправильно?
В вашем втором образце он должен быть 'nickname.api_data.api_basic.api_nickname' –
Ваш JSON не является действительным. Удалите запятую после '" api_nickname ":" David "' –
Что вы подразумеваете под * не работает *? Выбрасывает ли это исключение во время выполнения? Разве это не компилируется? Пожалуйста, будьте более ясными и конкретными –