Я новичок в десериализации объектов JSON. Я пытался использовать JSON.NET.
У меня есть аппаратное устройство, которое отправляет мне сообщение JSON, подобное этому.
{
"settings": [{
"slotid": 13,
"live": {
"values": [
{"id":1,"v":"3.5.0"},
{"id":2,"v":""},
{"id":3,"v":282827},
{"id":4,"v":127},
{"id":5,"v":127},
{"id":10,"v":7},
{"id":11,"v":1},
{"id":12,"v":22},
{"id":13,"v":1},
{"id":14,"v":1},
{"id":15,"v":0},
{"id":16,"v":2},
{"id":17,"v":0},
{"id":18,"v":0}
]
},
"presets": []
}]
}
Я пытался сделать это точно так же, как в
https://www.newtonsoft.com/json/help/html/DeserializeDataSet.htm
но что-то идет не так, я полагаю, что это зависит от построения формата ответа JSON.
Я использовал такой код:
public class Product
{
public string settings {get; set;}
public string values { get; set; }
//public string presets { get; set; }
public string slotid { get; set; }
}
private void Form1_Load(object sender, EventArgs e)
{
string URL = "http://10.0.0.201/api/json/controls/get?slotid=13";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);
request.ContentType = "application/json; charset=utf-8";
HttpWebResponse response = request.GetResponse() as HttpWebResponse;
using (Stream responseStream = response.GetResponseStream())
{
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
string json = reader.ReadToEnd();
try
{
Product deserializedProduct = JsonConvert.DeserializeObject<Product>(json);
}
catch(Exception E)
{
}
}
}
В переменной json я сохраняю сообщение JSON.
Я полагаю, что мне нужно создать пользовательские данные, но как?
Привет
Ps.
Я забыл сказать, что мне нужно получить только значения "id" и "v" из JSON из значений.