objeto - newtonsoft.json c#
¿Cómo deserializar una matriz JSON sin nombre? (1)
Solo devuelve una matriz
var locs = Location.DeserializedJson(json);
public class Location
{
public string Precision;
public double Latitude;
public double Longitude;
public string Address;
public string City;
public string State;
public string Zip;
public string Country;
public static Location[] DeserializedJson(string responseJson)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
return jsSerializer.Deserialize<Location[]>(responseJson);
}
}
PD: tenga en cuenta que [Serializable]
s son innecesarios.
No puedo entender cómo escribir una clase para deserializar una lista de objetos de JSON en .Net.
De la especificación JSON, aprendemos que esto es JSON válido:
[
{
"precision": "zip",
"Latitude": 37.7668,
"Longitude": -122.3959,
"Address": "",
"City": "SAN FRANCISCO",
"State": "CA",
"Zip": "94107",
"Country": "US"
},
{
"precision": "zip",
"Latitude": 37.371991,
"Longitude": -122.026020,
"Address": "",
"City": "SUNNYVALE",
"State": "CA",
"Zip": "94085",
"Country": "US"
} ]
Así que construí esta clase para manejar la deserialización:
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
namespace JsonRfc{
[Serializable]
public class Location {
public string Precision;
public double Latitude;
public double Longitude;
public string Address;
public string City;
public string State;
public string Zip;
public string Country;
public Location(){}
public static Location DeserializedJson(string responseJson)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
return jsSerializer.Deserialize<Location>(responseJson);
}
}
[Serializable]
public class Locations {
public List<Location> Location;
public Locations(){}
public static Locations DeserializedJson(string responseJson)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
return jsSerializer.Deserialize<Locations>(responseJson);
}
}
}
El objeto deserializado es nulo a pesar de tener Json válido pasado al método.
También probé otras cosas que fallaron: hacer que Locations sea una matriz en lugar de una lista (así que: public Location [] Location;), y deserializar a la ubicación aunque el Json contenga una matriz de ubicaciones.
Entonces, ¿cómo se espera que un desarrollador de .Net deserialice una matriz de objetos? Esperaba que lo anterior funcionara y no funciona.