¿Cómo deserializarlos?

programación


Debe ser dinámico ya que las filas son dinámicas. Tampoco se pueden utilizar otros archivos DLL de terceros ya que la aplicación es .net 3.5. Estoy usando JavaScriptSerializer

JSON
{
 "0": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "1": {
        "caseNumber": "###",
        "name": "###, ###",
        "birthYear": "###",
        "caseLocation": "###",
        "caseType": "###",
        "dateFiled": "##/##/##",
        "type": "",
        "query": {
            "firstName": "###",
            "lastName": "###",
            "dateOfBirth": "####-##-##",
            "fileDateBegin": "####",
            "fileDateEnd": "####"
        },
        "color": "###",
        "names": [
            "###, ###"
        ],
        "rank": "###",
        "s": ###
    },
    "failed": 0
}

Lo que he probado:

Con jsonconvert. Pero es necesario crear una clase independiente ya que la aplicación es el marco .net 3.5 y no funciona con el nuevo newtown.json.

Intenté esto pero no obtuve ninguna fila.

C#
public class SearchIndex
{
    public string caseNumber { get; set; }
    public string name { get; set; }
    public int? birthYear { get; set; }
    public string caseLocation { get; set; }
    public string caseType { get; set; }
    public DateTime? dateFiled { get; set; }
    public string type { get; set; }
    public string color { get; set; }
}

Solución 1

Puede crear una clase independiente para su Json utilizando la función Visual Studio. Cree una clase C# vacía, copie su JSON en el portapapeles, luego use el elemento de menú Editar > Pegado especial > Pegar JSON como clases y obtendrá el código C# para su JSON. Siga el enlace a continuación para crear su clase para la deserialización. Convierta clases JSON a C# usando la función Pegar JSON como clases[^]

Solución 2

Hice. Debido a que la respuesta dinámica del JSON tiene números, la propiedad también muestra números. Se necesitaba una clase que pudiera absorber tantas respuestas JSON

objeto raíz de clase pública
{
público _0 _0 {obtener; colocar; }
público _1 _1 { obtener; colocar; }
público _2 _2 { obtener; colocar; }
público _3 _3 { obtener; colocar; }
público _4 _4 { obtener; colocar; }
público _5 _5 { obtener; colocar; }
público _6 _6 { obtener; colocar; }
público _7 _7 { obtener; colocar; }
público _8 _8 {obtener; colocar; }
público _9 _9 { obtener; colocar; }
público _10 _10 { obtener; colocar; }
público _11 _11 { obtener; colocar; }
público _12 _12 {obtener; colocar; }
falló el int público {obtener; colocar; }
}

clase pública _0
{
número de caso de cadena pública { get; colocar; }
nombre de cadena pública {obtener; colocar; }
cadena pública año de nacimiento { get; colocar; }
cadena pública ubicación del caso { get; colocar; }
cadena pública tipo de caso { get; colocar; }
fecha de cadena públicaFiled { get; colocar; }
tipo de cadena pública {obtener; colocar; }
consulta de consulta pública { get; colocar; }
color de cadena pública {obtener; colocar; }
cadena pública[] nombres {obtener; colocar; }
rango de cadena pública {obtener; colocar; }
público int s {obtener; colocar; }
}

consulta de clase pública
{
cadena pública nombre { get; colocar; }
cadena pública apellido { get; colocar; }
cadena pública fecha de nacimiento { get; colocar; }
cadena pública fileDateBegin { get; colocar; }
cadena pública fileDateEnd { get; colocar; }
}

clase pública _1
{
número de caso de cadena pública { get; colocar; }
nombre de cadena pública {obtener; colocar; }
cadena pública año de nacimiento { get; colocar; }
cadena pública ubicación del caso { get; colocar; }
cadena pública tipo de caso { get; colocar; }
fecha de cadena públicaFiled { get; colocar; }
tipo de cadena pública {obtener; colocar; }
consulta pública Consulta1 { get; colocar; }
color de cadena pública {obtener; colocar; }
cadena pública[] nombres {obtener; colocar; }
rango de cadena pública {obtener; colocar; }
público int s {obtener; colocar; }
}

consulta de clase pública1
{
cadena pública nombre { get; colocar; }
cadena pública apellido { get; colocar; }
cadena pública fecha de nacimiento { get; colocar; }
cadena pública fileDateBegin { get; colocar; }
cadena pública fileDateEnd { get; colocar; }
}….

コメント

タイトルとURLをコピーしました