Reputation: 25
What's wrong with my classes?. I see array of objects as response:
private void btSubmit_Click(object sender, EventArgs e)
{
string myJsonResponse = "";
string uri = "https://api-mainnet.rarible.com/items/0xb32979486938aa9694bfc898f35dbed459f44424%3A2/ownerships";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
using (Stream stream = response.GetResponseStream())
using (StreamReader reader = new StreamReader(stream))
{
myJsonResponse = reader.ReadToEnd();
}
lista_root myDeserializedClass = JsonConvert.DeserializeObject<lista_root>(myJsonResponse);
string ab = "1";
}
public class Root
{
public string id { get; set; }
public string token { get; set; }
public string tokenId { get; set; }
public string owner { get; set; }
public int value { get; set; }
public DateTime date { get; set; }
public string status { get; set; }
public int selling { get; set; }
public int sold { get; set; }
public int stock { get; set; }
public List<object> pending { get; set; }
public bool blacklisted { get; set; }
public string creator { get; set; }
public bool verified { get; set; }
public List<object> categories { get; set; }
public int likes { get; set; }
public bool hide { get; set; }
public int? price { get; set; }
public int? priceEth { get; set; }
public string buyToken { get; set; }
public string buyTokenId { get; set; }
public string signature { get; set; }
}
public class lista_root
{
public List<Root> data { get; set; }
}
This json node contains something similar to this:
[
{
"id": "0xb32979486938aa9694bfc898f35dbed459f44424:2:0xe75021660e00a7fa0df1b97da13ebabe6d82e7ea",
"token": "0xb32979486938aa9694bfc898f35dbed459f44424",
"tokenId": "2",
"owner": "0xe75021660e00a7fa0df1b97da13ebabe6d82e7ea",
"value": 6,
"date": "2021-03-17T19:40:01.000+00:00",
"status": "NOT_FOR_SALE",
"selling": 0,
"sold": 0,
"stock": 0,
"pending": [],
"blacklisted": false,
"creator": "0x484ec62385e780f2460feac34864a77ba5a18134",
"verified": true,
"categories": [],
"likes": 81,
"hide": false
},
{
"id": "0xb32979486938aa9694bfc898f35dbed459f44424:2:0x59a5493513ba2378ed57ae5ecfb8a027e9d80365",
"token": "0xb32979486938aa9694bfc898f35dbed459f44424",
"tokenId": "2",
"owner": "0x59a5493513ba2378ed57ae5ecfb8a027e9d80365",
"value": 4,
"date": "2021-03-18T00:40:38.000+00:00",
"status": "NOT_FOR_SALE",
"selling": 0,
"sold": 0,
"stock": 0,
"pending": [],
"blacklisted": false,
"creator": "0x484ec62385e780f2460feac34864a77ba5a18134",
"verified": true,
"categories": [],
"likes": 81,
"hide": false
},
{
"id": "0xb32979486938aa9694bfc898f35dbed459f44424:2:0xb00c6641042ee7df4731e972b9ddf5a385d14ee0",
"token": "0xb32979486938aa9694bfc898f35dbed459f44424",
"tokenId": "2",
"owner": "0xb00c6641042ee7df4731e972b9ddf5a385d14ee0",
"value": 4,
"date": "2021-03-17T17:31:39.000+00:00",
"status": "NOT_FOR_SALE",
"selling": 0,
"sold": 0,
"stock": 0,
"pending": [],
"blacklisted": false,
"creator": "0x484ec62385e780f2460feac34864a77ba5a18134",
"verified": true,
"categories": [],
"likes": 81,
"hide": false
}
]
My goal here is to deserialize the object and loop through it.
Upvotes: 0
Views: 103
Reputation: 759
I assume that you:
you can easily deserialize JSON array with
List<Root> roots = JsonSerializer.Deserialize<List<Root>>(json);
full code
using System;
using System.Collections.Generic;
using System.Text.Json;
namespace JsonListDeserialize
{
class Program
{
static void Main(string[] args)
{
String json = @"[{""id"":""0xb32979486938aa9694bfc898f35dbed459f44424:2:0xe75021660e00a7fa0df1b97da13ebabe6d82e7ea"",""token"":""0xb32979486938aa9694bfc898f35dbed459f44424"",""tokenId"":""2"",""owner"":""0xe75021660e00a7fa0df1b97da13ebabe6d82e7ea"",""value"":6,""date"":""2021-03-17T19:40:01.000+00:00"",""status"":""NOT_FOR_SALE"",""selling"":0,""sold"":0,""stock"":0,""pending"":[],""blacklisted"":false,""creator"":""0x484ec62385e780f2460feac34864a77ba5a18134"",""verified"":true,""categories"":[],""likes"":81,""hide"":false},{""id"":""0xb32979486938aa9694bfc898f35dbed459f44424:2:0x59a5493513ba2378ed57ae5ecfb8a027e9d80365"",""token"":""0xb32979486938aa9694bfc898f35dbed459f44424"",""tokenId"":""2"",""owner"":""0x59a5493513ba2378ed57ae5ecfb8a027e9d80365"",""value"":4,""date"":""2021-03-18T00:40:38.000+00:00"",""status"":""NOT_FOR_SALE"",""selling"":0,""sold"":0,""stock"":0,""pending"":[],""blacklisted"":false,""creator"":""0x484ec62385e780f2460feac34864a77ba5a18134"",""verified"":true,""categories"":[],""likes"":81,""hide"":false},{""id"":""0xb32979486938aa9694bfc898f35dbed459f44424:2:0xb00c6641042ee7df4731e972b9ddf5a385d14ee0"",""token"":""0xb32979486938aa9694bfc898f35dbed459f44424"",""tokenId"":""2"",""owner"":""0xb00c6641042ee7df4731e972b9ddf5a385d14ee0"",""value"":4,""date"":""2021-03-17T17:31:39.000+00:00"",""status"":""NOT_FOR_SALE"",""selling"":0,""sold"":0,""stock"":0,""pending"":[],""blacklisted"":false,""creator"":""0x484ec62385e780f2460feac34864a77ba5a18134"",""verified"":true,""categories"":[],""likes"":81,""hide"":false}]";
List<Root> roots = JsonSerializer.Deserialize<List<Root>>(json);
Console.WriteLine(roots.Count);
foreach (var root in roots) Console.WriteLine(root.id);
}
}
public class Root
{
public string id { get; set; }
public string token { get; set; }
public string tokenId { get; set; }
public string owner { get; set; }
public int value { get; set; }
public DateTime date { get; set; }
public string status { get; set; }
public int selling { get; set; }
public int sold { get; set; }
public int stock { get; set; }
public List<object> pending { get; set; }
public bool blacklisted { get; set; }
public string creator { get; set; }
public bool verified { get; set; }
public List<object> categories { get; set; }
public int likes { get; set; }
public bool hide { get; set; }
public int? price { get; set; }
public int? priceEth { get; set; }
public string buyToken { get; set; }
public string buyTokenId { get; set; }
public string signature { get; set; }
}
}
output
3
0xb32979486938aa9694bfc898f35dbed459f44424:2:0xe75021660e00a7fa0df1b97da13ebabe6d82e7ea
0xb32979486938aa9694bfc898f35dbed459f44424:2:0x59a5493513ba2378ed57ae5ecfb8a027e9d80365
0xb32979486938aa9694bfc898f35dbed459f44424:2:0xb00c6641042ee7df4731e972b9ddf5a385d14ee0
Upvotes: 2