在 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 转换为对象的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Angular 中将动态 JSON 对象数组导出为 CSV?
在mysql Sequelize + Nodejs中将数组和对象转换为批量插入