Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
角度和将json数据转换为真实对象(反之亦然)_Json_Angular_Ngrx_Class Transformer - Fatal编程技术网

角度和将json数据转换为真实对象(反之亦然)

角度和将json数据转换为真实对象(反之亦然),json,angular,ngrx,class-transformer,Json,Angular,Ngrx,Class Transformer,要保持简单,请执行以下操作: 我在typescript中定义了一些类,这些类有方法和属性(有很多getter/setter逻辑)。然后检索与这些类匹配的json数据。我需要能够将这些json对象投影到我的“智能”类中。我知道,但我想知道这是否真的是做这类事情的好方法。此外,我正计划使用ngrx,所以整个类的转换看起来是错误的(服务器到json,json到状态,状态到类,反之亦然),我只是没有看到一个清晰的模式 非常感谢您的澄清。谢谢!我所做的几乎与您在一个相当大的应用程序中所描述的一模一样。 我

要保持简单,请执行以下操作:

我在typescript中定义了一些类,这些类有方法和属性(有很多getter/setter逻辑)。然后检索与这些类匹配的json数据。我需要能够将这些json对象投影到我的“智能”类中。我知道,但我想知道这是否真的是做这类事情的好方法。此外,我正计划使用ngrx,所以整个类的转换看起来是错误的(服务器到json,json到状态,状态到类,反之亦然),我只是没有看到一个清晰的模式


非常感谢您的澄清。谢谢!

我所做的几乎与您在一个相当大的应用程序中所描述的一模一样。 我使用class transformer将JSON从http调用转换为相应对象的实例,然后将生成的对象用作存储中的状态(除了我使用的是Redux而不是ngrx)

我发现它工作得很好

我不确定你所说的“服务器到json,json到状态,状态到类,反之亦然”到底是什么意思

对我来说(使用你的术语),它是服务器到json,json到类,类到状态 (但状态只是对象的集合,即类实例,即状态是对象)


如果我需要将状态发送回服务器,那么是的,我通常会从存储中提取适当的对象,将它们序列化为JSON,然后将它们发送到服务器。但是…Angular HttpClient会为您进行序列化,因此您通常不必编写该部分,除非您需要一些自定义序列化。

我正在做的几乎是exactl你在一个相当大的应用程序中描述了什么。 我使用class transformer将JSON从http调用转换为相应对象的实例,然后将生成的对象用作存储中的状态(除了我使用的是Redux而不是ngrx)

我发现它工作得很好

我不确定你所说的“服务器到json,json到状态,状态到类,反之亦然”到底是什么意思

对我来说(使用你的术语),它是服务器到json,json到类,类到状态 (但状态只是对象的集合,即类实例,即状态是对象)


如果我需要将状态发送回服务器,那么是的,我通常会从存储中提取适当的对象,将它们序列化为JSON,然后将它们发送到服务器。但是…Angular HttpClient会为您执行序列化,因此您通常不必编写该部分,除非您需要一些自定义序列化。

Hi!我将此标记为回答是因为你花了时间回答,也因为你说我想为你做的事情。但是我有几个问题。1.如果你去“json课堂”在将其设置为状态之前,您是否有可能在redux控件之外改变您的状态?属性将更改其他属性等?2.您是否使用json的任何库进行分类?3.我将对此进行一次尝试(在实际尝试之前还有很多工作要做)…你介意我通过私人消息与你联系以防我走到死胡同吗?谢谢,我所说的状态到类的意思是我读到了一些关于redux不喜欢“智能”对象的文章,所以我认为必须实例化“真实”类(带有属性设置器的类)在从商店中选择之后。如果你在商店中使用这样的类,那么我也会更有信心这样做。但是你明白我的观点吗?1.不。不知道你想象会发生什么。如果你真的担心的话,我想你可以用一个减缩器来进行转换。如果你是这样的话,我不会在商店中存储JSON是的,正如我所提到的,我使用的是类转换器。请随意PM我。如果“智能对象”是指具有改变对象状态的方法的对象,那么是的,您可能希望在还原器中进行这些状态更改。我通常不存储“智能”对象,但我确实存储了属性不是字符串、日期和数字的对象,因此需要反序列化。所谓智能,我指的是其属性(setter)可能包含逻辑的对象,就像属性生日一样,在设置时更新“age”属性。可以有像“calculateAgeFromBidthdate()这样的方法.因此,我不关心对象的结构复杂性,而是关心它可能包含的业务逻辑。我之所以将此标记为答案,是因为您花了时间回答,也是因为您说我试图为您做一些工作。但我有几个问题。1.如果您选择“json到类”在将其设置为状态之前,您是否有可能在redux控件之外改变您的状态?属性将更改其他属性等?2.您是否使用json的任何库进行分类?3.我将对此进行一次尝试(在实际尝试之前还有很多工作要做)…你介意我通过私人消息与你联系以防我走到死胡同吗?谢谢,我所说的状态到类的意思是我读到了一些关于redux不喜欢“智能”对象的文章,所以我认为必须实例化“真实”类(带有属性设置器的类)在从商店中选择之后。如果你在商店中使用这样的类,那么我也会更有信心这样做。但是你明白我的观点吗?1.不。不知道你想象会发生什么。如果你真的担心的话,我想你可以用一个减缩器来进行转换。如果你是这样的话,我不会在商店中存储JSON是的,正如我所提到的,我使用的是类转换器。请随意PM我。如果“智能对象”是指具有改变对象状态的方法的对象,那么是的,您可能希望在还原器中进行这些状态更改。我通常不存储“智能”对象,但我确实存储了属性不是字符串、日期和数字的对象,因此需要反序列化。所谓智能,我指的是其属性(setter)可能包含逻辑的对象,就像属性生日一样,在设置时更新“age”属性。可以有像“calculateAgeFromBidthdate()”这样的方法