让我们成为这个 JSON 字符串:
[
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
]
假设是这个类:
export class MyObject{
id: number;
text: string;
}
如何将此 JSON 字符串转换为 MyObject
列表?
如果我做了:
console.log(<MyObject[]>JSON.parse(json_string));
它返回<code>Object</code>的列表,而不是<code>MyObject</code>的列表
当MyObject有50个或更多属性时出现问题…
在MyObject类中添加构造函数,以便它扩展json对象。
export class MyObject {
constructor( json: any )
{
$.extend(this, json);
}
id : number;
text : string;
methodOnMyObject() {...}
}
在ajax回调中,从json对象创建MyObject对象:
let newObject = new MyObject( json );
newObject.methodOnMyObject();
我在那篇帖子中详细介绍了解决方案。
您需要为类创建一个构造函数,并为收到的列表中的每个项调用它。
export class MyObject{
constructor(public id: number, public text: string) { }
}
let data = [
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
];
let objects = data.map(o => new MyObject(o.id, o.text));
你可以在这里的操场上看看。
这里不一定需要类。你可以使用接口
export interface MyObject{
id: number;
text: string;
}
然后你可以写:
var myObjArray : MyObject[] = [
{
"id": 1,
"text": "Jon Doe"
},
{
"id": 1,
"text": "Pablo Escobar"
}
];
如果你的数据来自服务器,你可能会把它放在一个any类型的变量中,你可以把它赋给一个该类型的数组,它就会像预期的那样工作。
var data: any = getFromServer();
var myObjectArray:MyObject[] = data;
在typescript中,你不需要一个实现接口的类。任何满足接口契约的对象文字都可以。
如果您的数据仍为字符串,则可以使用<code>JSON。parse(jsonString)将字符串解析为JavaScript对象。
在这里查看游乐场
我有以下JSON字符串: 我只想要和。我试过这样的方法: 但我得到了以下错误: 我只使用过几次JSON。有人能帮我吗? 对我来说最好的例子是这样的,我在另一个例子中做过: 可能吗? 现在我已经做到了: 我试着这样做: 然后: 但现在当我做一个Prtinout时,我会得到和以前一样的错误:
我有一个字符串xml 我使用下面的代码将xml sting转换为json,并使用XMLDocument和JsonConvert。序列化XmlNode()。 我得到的输出如下 ............................................................... 但是,我想忽略“@”和{?xml”:{“@version”:“1.0”,“@encoding”:“
问题内容: 我想转换JSON字符串 至 注意:我没有使用排序的版本进行通信(因为键顺序并不重要),我需要一个排序的版本来执行本地测试(通过比较JSON字符串)。 编辑: I4V指出了使用Json.Net的解决方案,我宁愿使用不需要包含任何第三方库的解决方案(实际上,我在应用程序中使用内置的System.Json) 我张贴由I4V +一些测试提供的解决方案要点这里。谢谢你们。 问题答案: 我将为此使
问题内容: 我正在尝试在Java控制台应用程序中输入信息,但似乎无法运行它。 这是我的Java文件的样子: 但是我得到了错误: 我的源文件夹中有一个keyboard.class文件。我将Eclipse与Ubuntu结合使用。 问题答案: 表示无法编译代码。 您必须导入Keyboard,类似 当您使用不同包中的类(不是当前类的同一包)时,必须导入该类。如果该类也位于同一包中,则无需导入。 通常将类分
我正在编写一个JSON接口/库,用于Bugzilla的webservice。 这可以使用注释或其他内容吗?还是要为每个这样的实例编写一个自定义反序列化程序? 我试着做了一些研究,发现了一些关于值实例化器或使用构造函数的信息,但使用构造函数不是反bean吗?我发现新特性的文档很少或难以理解。 示例: 我对一个字段使用pojo的原因是,这个用户类是由另一个具有更多字段的用户类扩展的。虽然我可以实现一个
主要内容:输入单个字符,输入字符串,总结C语言有多个函数可以从键盘获得用户输入,它们分别是: scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。 getchar()、getche()、getch():这三个函数都用于输入单个字符。 gets():获取一行数据,并作为字符串处理。 scanf() 是最灵活、最复杂、最常用的输入函数,上节我们已经进行了讲解,本节接着讲解剩下的函数,也就是字符输入函数和字符串