解析没有对象名typescript的JSON数组

cgfeq70w  于 2023-02-05  发布在  TypeScript
关注(0)|答案(1)|浏览(151)

我有一个json对象数组,但对象名为

[
  {
    "FIRST_NAME": "fname",
    "LAST_NAME": "KSHHS",
    "SERIAL_NO": 905
  },
  {
    "FIRST_NAME": "jhdf",
    "LAST_NAME": "dfdf",
    "SERIAL_NO": 965
  }
]

我试图在typescript中反序列化这个,我的类有不同的字段名,同样的方式,我们在java中使用Jackson对象Map器。我的类看起来像:

import { JsonObject, JsonProperty } from "json2typescript";
       @JsonObject("Student") 
       export class Student {
            @JsonProperty('FIRST_NAME', String)
            firstName?: string;
            @JsonProperty('LAST_NAME', String)
            lastName?: string;
            @JsonProperty('SERIAL_NO', number)
            id?: string;
    }
            let response: Student[];
            response = jsonConvert.deserializeArray(json , Student);//json is the Object array

我试过使用json2typescript,它不能反序列化,因为我的json没有对象键,但是链接中显示的示例有。
没有错误,但它没有反序列化,我在日志中看到空Student,如下所示

Receiving JSON array:
[
  {
    "FIRST_NAME": "fname",
    "LAST_NAME": "KSHHS",
    "SERIAL_NO": 905
  },
  {
    "FIRST_NAME": "jhdf",
    "LAST_NAME": "dfdf",
    "SERIAL_NO": 965
  }
]

----------
Receiving JSON object:
  {
    "FIRST_NAME": "jhdf",
    "LAST_NAME": "dfdf",
    "SERIAL_NO": 965
  }
Returning CLASS instance:
Student {}
----------
Returning array of CLASS instances:
[ Student {} ]
----------
wgx48brx

wgx48brx1#

如果没有对象关键帧,基本上剩下两个选项:
1.创建** Package 对象**

let wrappedJson = { "StudentArray": json };
response = jsonConvert.deserializeArray(wrappedJson, Student, "StudentArray");

1.循环对象:

let response: Student[] = [];
for (let jsonObject of json) {
  response.push(jsonConvert.deserializeObject(jsonObject, Student));
}

相关问题