Oscar vs
Oscar vs

Reputation: 386

How to use newtonsoft.json nested

Im trying to parse a JSON with Newtonsoft.JSON package.

string jsonData =
 "{\"name\":\"olga\",\"tokenmode\":\"bearer\",\"expires\":9483,\"refresh\":\"{\\\"Id\\\":\\\"alla-ieih-8493j-2455d\\\",\\\"Id\\\":\\\"94094-3838485-kdooj4u\\\"}\",\"status\":\"10\",\"namestatus\":\"5\"}";


 dynamic aa = JsonConvert.DeserializeObject(jsonData);

var name = aa.name.tostring(); //Outputs olga

var id = aa.refresh.Id.ToString(); //Gives error

Question is how can i access the Id data?

Upvotes: 1

Views: 374

Answers (3)

Marco Salerno
Marco Salerno

Reputation: 5203

Create a class:

class Player
{
    public Guid ID { get; set; }
    public string Name { get; set; }
    public TimeSpan Elapsed { get; set; }

    [JsonConstructor]
    public Player(Guid id, string name, TimeSpan elapsed)
    {
        this.ID = id;
        this.Name = name;
        this.Elapsed = elapsed;
    }
    public Player(string name, TimeSpan elapsed)
    {
        this.ID = Guid.NewGuid();
        this.Name = name;
        this.Elapsed = elapsed;
    }
}

Ask for object:

Player player = JsonConvert.DeserializeObject<Player>(jsonstring);

Ask for list of objects:

List<Player> players = JsonConvert.DeserializeObject<List<Player>>(jsonstring);

Upvotes: 1

jmunoa7
jmunoa7

Reputation: 185

You have to do this:

var id = aa.refresh[0].Id.ToString();

Upvotes: 0

LukeChastain
LukeChastain

Reputation: 94

You'll have to add a

dynamic refresh = JsonConvert.DeserializeObject(aa.refresh.ToString());

Upvotes: 4

Related Questions