当前位置: 首页 > 知识库问答 >
问题:

Angular 2:将JSON对象解析为Angural类[重复]

庞安晏
2023-03-14

我一直在遵循Angular2入门文档来开发我自己的应用程序,我已经成功地从本地文件中检索JSON对象,并将它们显示在angular2模板中。然而,目前它依赖于与我的JSON文件中的对象结构完全匹配的angular类。

最终,我需要我的应用程序使用JSON-LD,它具有属性名,如“@id”。我做了一些谷歌搜索,似乎RxJS可能具有我正在寻找的功能,但我不确定从哪里开始中断从一些JSON数据到angular2类的自动绑定,而是能够在JSON中查找标记为“@id”的内容并设置SomeClass.id的值

自动生成Person类数组的当前代码:

getPeople(){
    return this._http.get(this._peopleUrl)
        .map(response => <Person[]> response.json().data)
        .do(data => console.log(data)) //debug to console
        .catch(this.handleError);
} 

这样的JSON很好:

[
 {
  "id":"1",
  "name":"tessa"
 },
 {
  "id":"2",
  "name":"jacob"
 }
]

但对于这样的JSON,它显然会失败:

[
 {
  "@id":"1",
  "name":"tessa"
 },
 {
  "@id":"2",
  "name":"jacob"
 }
]

我的课程很简单(目前:-)

export class Person {
  constructor(
    public id:number,
    public name:string,
  ){}
}

有没有人能给我指出一些把复杂/棘手的json映射到angular2中的类的文档/例子的正确方向?

共有1个答案

谷梁鸣
2023-03-14

我在这里给出的答案的选项4中找到了答案:如何用JSON对象初始化typescript对象

希望这有助于任何人登陆此页面寻找相同的东西!

 类似资料:
  • 问题内容: 我正在尝试在此链接中使用示例 http://sharpdevpt.blogspot.com/2009/10/deserialize-json- on-c.html?showComment=1265045828773#c2497312518008004159 但是我的项目无法使用JavaScriptConvert.DeserializeObject进行编译,该示例说这是来自.net库,有

  • 你好,我有以下任务: 具有JSON对象的URL: *通过注释定义如何将JSON定义到Java列表中,并找到其中有“名称”的对象。 我认为问题是在不使用任何java库的情况下解析JSON。到目前为止,我已经开发了以下代码: 我在这里做的是我有一个JSONObject类,它将JSON属性存储在映射中,然后我想使用反射来填充任何类。 为了解析JSON,我尝试创建一个迷你FSM(:)),它使用For循环解

  • 问题内容: 我目前正在尝试将收到的JSON对象转换为具有相同属性的TypeScript类,但无法使其正常工作。我究竟做错了什么? 员工阶层 员工字符串 我的尝试 链接到打字稿游乐场 问题答案: 编译器允许您将返回的对象强制转换为类的原因是因为typescript基于结构子类型。 您实际上并没有的实例,而是拥有一个具有相同属性的对象(如在控制台中看到的)。 一个简单的例子: (操场上的代码) 没有错

  • 问题内容: 我正在尝试使用mapper进行解析以将大JSON解析为java对象。我有一个很大的JSON,但遇到了其中的这一小片段,不确定如何解析。 这是JSON,其格式看起来几乎没有什么不同。我试图了解如何将其解析为对象。 我不知道它采用哪种格式,以及如何将其解析为对象。 问题答案: 这取决于你的身材有多大。如果可以将其加载到内存,则可以使用最简单的方法: 解决方案1: POJO类: 用法: 上面

  • 我想由jackson将json更改为object,对象包含类型字段。 例外情况: 豆子: 我提供了setter/getter和字段can的一一映射。我使用的将json更改为object。

  • 我试图向服务器发出POST请求,但我遇到了一个问题。服务器似乎收到了请求,但我仍然在控制台中看到一个错误,建议将主体从Object更改为JSON 错误:SyntaxError:JSON中位于JSON位置0处的意外标记A。在XMLHttpRequest处解析()。装载(http://localhost:4200/vendor.js:69142:51)text:“它是用id=:23保存的新用户”pro