gpt4 book ai didi

c# 反序列化 JSON web api 响应

转载 作者:行者123 更新时间:2023-11-30 19:39:58 25 4
gpt4 key购买 nike

我需要一些可以告诉我我的错误在哪里的人的帮助。
我有一个返回 JSON 代码的 API:

{"block4o": {
"id": 20153910,
"name": "Block4o",
"profileIconId": 616,
"revisionDate": 1408967362000,
"summonerLevel": 30
}}

我试图反序列化它但没有成功。我正在使用 NuGet 的 NewtonSoft.Json。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Net;
using Newtonsoft.Json;

namespace ConsoleApplication37
{
class Program
{

class MyData
{
public long id { get; set; }
public string name { get; set; }
public int profileIconId { get; set; }
public long revisionDate { get; set; }
public long summonerLevel { get; set; }
}

static void Main()
{
WebRequest request = WebRequest.Create(
"https://eune.api.pvp.net/api/lol/eune/v1.4/summoner/by-name/Block4o?api_key=****");
request.Credentials = CredentialCache.DefaultCredentials;
WebResponse response = request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
response.Close();
Console.ReadKey();

MyData tmp = JsonConvert.DeserializeObject<MyData>(responseFromServer);
Console.WriteLine("{0}",tmp.id);
Console.ReadKey();
}

}
}

P.S 如果响应是这样的,它就可以工作:

{
"id": 20153910,
"name": "Block4o",
"profileIconId": 616,
"revisionDate": 1408967362000,
"summonerLevel": 30
}

最佳答案

您需要指定您的 json 的哪个属性对应于您的模型。

MyData tmp = JsonConvert.DeserializeObject<MyData>((JObject.Parse(responseFromServer)["block4o"]).ToString());

关于c# 反序列化 JSON web api 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25485707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com