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
如何通过FlexJson序列化模型中的瞬态字段?_Json_Serialization_Playframework_Flexjson - Fatal编程技术网

如何通过FlexJson序列化模型中的瞬态字段?

如何通过FlexJson序列化模型中的瞬态字段?,json,serialization,playframework,flexjson,Json,Serialization,Playframework,Flexjson,我正在使用Play框架公开RESTAPI,它返回一些JSON对象。 为了简化API的使用,我想在响应中返回一个“计算”字段 不幸的是,在我的测试中,虽然FlexJson没有完全忽略瞬态模型字段,但总是将它们设置为“null” 更多详情: 在模型类中,我定义: @Transient public String currencyName; 类的唯一构造函数将值设置为“美元”(用于调试): 使用FlexJson序列化类时,如果在include/exclude中未指定“currencyName”字段,

我正在使用Play框架公开RESTAPI,它返回一些JSON对象。 为了简化API的使用,我想在响应中返回一个“计算”字段

不幸的是,在我的测试中,虽然FlexJson没有完全忽略瞬态模型字段,但总是将它们设置为“null”

更多详情:

模型类中,我定义:

@Transient
public String currencyName;
类的唯一构造函数将值设置为“美元”(用于调试):

使用FlexJson序列化类时,如果在include/exclude中未指定“currencyName”字段,则结果通常如下所示:

"currencyName":null
知道哪里出错了吗?知道如何将字段值序列化为JSON吗


提前感谢。

根据定义,如果您的字段是临时字段,则不会序列化。如果状态很重要,那么这个字段在应用程序中可能不应该是暂时的

谢谢。我使用序列化是为了生成“干净”的JSON,而不是在应用程序之间传输对象“状态”。我的想法是,使用计算字段直接指定JSON格式,而不是配置从“this.currency”到“print out”到JSON的字段。有什么想法吗?如果你对保持这个字段或保持状态不感兴趣,为什么不把这个字段全部删除呢。您可以使用一个计算并返回此值的方法,即字符串getCurrencyName(),或者使用序列化程序中的exclude方法:new JSONSerializer().exclude(“currencyName”).serialize(“Currency”,Currency);非常感谢,“emt14”。我实现了字符串getCurrencyName()-完全按照您描述的方式工作。
"currencyName":null