¿Cómo deserializarlos?

programación

[ad_1]

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; }
}….

[ad_2]

コメント

Título y URL copiados