With my code below I am able to get the value of:
{
"101": [
{
"name": "Lane 2",
"code": 21
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 8",
"code": 81
},
{
"name": "Lane 9",
"code": 91
},
{
"name": "Lane 11",
"code": 111
}
],
"103": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 6",
"code": 61
}
],
"105": [
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 9",
"code": 91
}
],
"107": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 51
}
],
"109": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 61
}
],
"111": [
{
"name": "Lane 2",
"code": 21
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
}
],
"113": [
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 8",
"code": 81
},
{
"name": "Lane 9",
"code": 91
}
],
"115": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 51
}
],
"117": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
}
]
}
What I need is to be able to select through the json file for a certain value then get its children. Example when I send "101" I should be able to get:
{
"name": "Lane 2",
"code": 21
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 8",
"code": 81
},
{
"name": "Lane 9",
"code": 91
},
{
"name": "Lane 11",
"code": 111
}
and place it on a class. This is my code so far:
Lane.json
{
"101": [
{
"name": "Lane 2",
"code": 21
}
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 8",
"code": 81
},
{
"name": "Lane 9",
"code": 91
},
{
"name": "Lane 11",
"code": 111
}
],
"103": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 6",
"code": 61
}
],
"105": [
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 9",
"code": 91
}
],
"107": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 51
}
],
"109": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 61
}
],
"111": [
{
"name": "Lane 2",
"code": 21
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
}
],
"113": [
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
},
{
"name": "Lane 8",
"code": 81
},
{
"name": "Lane 9",
"code": 91
}
],
"115": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 5",
"code": 51
}
],
"117": [
{
"name": "Lane 3",
"code": 31
},
{
"name": "Lane 4",
"code": 41
},
{
"name": "Lane 6",
"code": 61
}
]
}
Lane.cs
class Lane
{
public string name { get; set; }
public int code { get; set; }
}
class LaneContainer
{
public List<Lane> Lane { get; set; }
}
This is how I get the values
private void cbPlaza_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
Plaza selected = (Plaza)cbPlaza.SelectedValue;
string fileName = "Lane.json";
string path = System.IO.Path.Combine(Environment.CurrentDirectory, @"Data\", fileName);
var json = File.ReadAllText(path);
LaneContainer laneContainer = JsonConvert.DeserializeObject<LaneContainer>(File.ReadAllText(json));
}
I get an error like so:
Additional information: After parsing a value an unexpected character was encountered: {. Path '101[0]', line 7, position 4.
What can I do to solve this?
You are missing a comma and your structure is a Dictionary<string,List<Lane>>
class Lane
{
public string name { get; set; }
public int code { get; set; }
}
Example
To get 101
var json = File.ReadAllText(path);
var lanes = JsonConvert.DeserializeObject<Dictionary<string, List<Lane>>>(json);
var results = lanes["101"];