在 Angular 7 中将 Json 转换为对象

Posted

技术标签:

【中文标题】在 Angular 7 中将 Json 转换为对象【英文标题】:Convert Json to Object in Angular 7 【发布时间】:2019-11-06 20:31:17 【问题描述】:

这是 json 字符串 "firstName":"John" ,"lastName":"Doe" 。 我想将 json 字符串转换为 angular 中具有自定义名称的对象。这是 c# 代码。

public class Example
 
    [JsonProperty("firstName")]
    public string FName  get; set; 

    [JsonProperty("lastName")]
    public string LName  get; set; 

【问题讨论】:

试试下面的链接,***.com/questions/40421100/… 这个问题与Angular无关。这就是如何让您的 .NET API 使用自定义命名属性序列化您的模型。 【参考方案1】:

只需使用 JSON.parse

console.log(JSON.parse('"firstName":"John" ,"lastName":"Doe" '))

但你不应该这样做。你是如何得到 JSON 字符串的?如果您使用 HttpClient 调用您的 C# api,例如

http.get<YourModel>('apiUrl');

只要 api 响应的内容类型为 text/json,就应该已经解析了来自 api 的响应。

【讨论】:

但我想重命名 FName 而不是 firstName 和 LName 而不是 lastName 你必须在你的 api 中做那个服务器端,Angular 不会得到那些通过网络发送的 C# 属性。【参考方案2】:

如果你有前端模型,使用lib class-transformerhttps://github.com/typestack/class-transformer的classToPlain方法

例子

import  classToPlain  from "class-transformer";
...
var yourModel: YourModel = "firstName":"John" ,"lastName":"Doe" ;
this.http.post(`$url/AnyMethod`, classToPlain(yourModel)).pipe();
...

class YourModel
   firstName: string;
   lastName: string;

【讨论】:

以上是关于在 Angular 7 中将 Json 转换为对象的主要内容,如果未能解决你的问题,请参考以下文章

在Angular8中将HTTP响应json转换为打字稿对象

如何在 Angular 中将动态 JSON 对象数组导出为 CSV?

在mysql Sequelize + Nodejs中将数组和对象转换为批量插入

在javascript中将数字转换为数组| angular7的打字稿[重复]

在 Android 中将对象转换为 JSON

在 PHP 中将对象转换为 JSON 并将 JSON 转换为对象,(像 Gson for Java 之类的库)