我有一个Ionic v5.0.0 / Capacitor v1.1.1 / Angular v8 / Typescript v3.4.3,我正在导入一个JSON文件,以便稍后使用json2typescript解析为对象。导入文件并在控制台上打印后,它将读取:数据文件为-> {“ default”:{“ dataId”:1}}
“默认”前缀在哪里,为什么?我在解析此文件时遇到问题,而以前的版本将其读取为:数据文件为-> {“ dataId”:1}
最终我正在使用json2typescript,但由于以下原因而失败:
错误->错误:JsonConvert中的致命错误。无法将JSON对象映射到“默认”类,因为已定义的JSON属性“ dataId”不存在:
Class property:
dataId
JSON property:
dataId
如果有更好的方法将JSON文件动态解析为对象(由许多数组和子数组组成),我欢迎您提出建议-我们将不胜感激!
` 要导入的本地文件(1.1.1.json):
{ “ dataId”:1 }
--------
Parser code snippet:
import * as mockJSONData from '../../../assets/test-data/1.1.1.json';
import { JsonObject, JsonProperty } from 'json2typescript';
import { JsonConvert, OperationMode, ValueCheckingMode } from 'json2typescript';
...
const jsonData = mockJSONData;
console.log('data file is ->' + JSON.stringify(jsonData));
...
const jsonConvert: JsonConvert = new JsonConvert;
jsonConvert.operationMode = OperationMode.LOGGING; // print some debug data
jsonConvert.ignorePrimitiveChecks = false; // don't allow assigning number to string etc.
jsonConvert.valueCheckingMode = ValueCheckingMode.DISALLOW_NULL;
const dataModel: DataModel =
jsonConvert.deserializeObject(jsonData, DataModel);
--------
DataModel:
@JsonObject('default')
export class DataModel {
enter code here
@JsonProperty('dataId', Number)
dataId: number = undefined;
}
`