C sharp - Leer un trozo de json

 
Vista:

Leer un trozo de json

Publicado por xavi (6 intervenciones) el 21/09/2021 12:11:46
Hola a todos
Necesito un poco de vuestra ayuda profesional

*** Con esta rutina obtengo los datos de un JSON ***


private void Ver_Pedidos()
{

RestClient client = new RestClient("https://devws.web.com/api-ws/v1.1/orders");
RestRequest request = new RestRequest(Method.GET);

request.AddHeader("Accept", "application/json");
request.AddHeader("authorization", "Bearer " + X_Token);
request.RequestFormat = DataFormat.Json;

var response = client.Execute(request).Content;

DataTable dt = (DataTable) JsonConvert.DeserializeObject(response, typeof(DataTable));

if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
textBox1.Text += dt.Rows[i]["orderId"].ToString();
textBox1.Text += dt.Rows[i]["stateOrderId"].ToString();
textBox1.Text += dt.Rows[i]["state"].ToString();
textBox1.Text += dt.Rows[i]["customerId"].ToString();
etc...
}
}

}


*** NOTA: El problema es que no se como leer los campos a partir del
items: ["ean","name","quantity", etc...] ***


* El JSON que recibo es el siguiente:

{
"orderId": "100000131",
"stateOrderId": 2,
"state": "Delegado al socio",
"customerId": 7,
"orderDate": "08/06/2016",
"updatedDate": "08/06/2016",
"shippingContryIsoA2": "ES",
"shippingRegion": "Barcelona",
"shippingTown": "Barcelona",
"shippingAddress": "Avda. Diagonal nº612, 3º 5º",
"shippingPostCode": "08021",
"shippingFirstname": "susursal",
"shippingLastname": "empresa",
"shippingPhone": "950 343434",
"shippingEmail": "[email protected]",

"items": [ <------------------------- No se como leer apartir de aquí
{
"ean": "4242002490915",
"name": "Bosch HMT75G451 microondas",
"quantity": 1,
"weight": 10,
"totalWeight": 10,
"price": 200,
"taxPercent": 21,
"totalTax": 42,
"totalPriceTax": 242
}
],
"shippings": [
{
"carrierId": "correos",
"warehouseOriginId": 440001,
"items": [
{
"EAN": "4242002490915",
"quantity": 1
}
]
}
],


**********************
Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 373
Plata
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Leer un trozo de json

Publicado por Agustin (171 intervenciones) el 22/09/2021 21:43:07
DataTable y todas las APIs relacionadas está completamente obsoleto desde hace 10 años. De hecho en las versiones nuevas de .NET ni siquiera existe.

Borrá todo ese código, instalate el nuget Newtonsoft.Json, hacete un object model fuertemente tipado y despues haces JsonConvert.DeserializeObject<T>() y listo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer un trozo de json

Publicado por xavi (6 intervenciones) el 23/09/2021 11:46:55
Gracias por responder

Lo que lo del datatable es obsoleto desde hace 10 años,
a que te refieres?

Es obsoleto solo para manipuar JSON ?
o
es obsoleto en todo tipo de proyectos .net?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 373
Plata
Ha aumentado su posición en 2 puestos en C sharp (en relación al último mes)
Gráfica de C sharp

Leer un trozo de json

Publicado por Agustin (171 intervenciones) el 23/09/2021 14:41:10
Es obsoleto porque no tenes ninguna justificacion valida para usar string typing en lugar de usar un modelo de objetos fuertemente tipado y un ORM como Entity Framework o dapper o lo que sea.

Y no, nunca fue una opción coherente para json, de hecho json ni siquiera existía cuando se diseñaron las APIs de DataTable en 2003.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer un trozo de json

Publicado por xavi (6 intervenciones) el 23/09/2021 18:25:20
Vale, vale no me regañes....

Soy autodidacta y solo pretendo aprender de vosotros los pro....

lo del json ya mas o menos lo tengo apañao con clases etc y sin datatable ji.

para las futuras aplicaciones normales con manipulacion de datos SQL,
miraré como sustituir mi experiencia en datasets, datatables y datareaders
a ORM's.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar