【问题标题】:how to convert C# code to Kotlin consist of Json library如何将 C# 代码转换为 Kotlin 由 Json 库组成
【发布时间】:2020-12-12 02:23:17
【问题描述】:

我是 kotlin 新手,英语不好抱歉。

我想把下面的代码转换成 Kotlin。

但我在 kotlin 中找不到与 [JsonExtensiondata] 匹配的代码。

public class ProofAttribute
{
    [JsonProperty("raw")]
    public string Raw { get; set; }

    /// <summary>
    /// ignore structural mapping of other properties
    /// </summary>
    [JsonExtensionData]
    public IDictionary<string, JToken> Rest { get; set; }
} 

【问题讨论】:

    标签: c# .net json spring-boot kotlin


    【解决方案1】:

    您可以使用 Jackson 库进行序列化/反序列化。如果您选择这样做,请使用此处文档中描述的 @JsonAnyGetter 注释:https://github.com/FasterXML/jackson-annotations/wiki/Jackson-Annotations

    @JsonAnyGetter:用于将getter定义为“任何getter”的注释,它返回一个java.util.Map,其内容将被序列化为JSON Object的附加属性,以及Object可能具有的常规属性.

    查看示例:

    class Student {
       private Map<String, String> properties;
       public Student(){
          properties = new HashMap<>();
       }
       @JsonAnyGetter
       public Map<String, String> getProperties(){
          return properties;
       }
       public void add(String property, String value){
          properties.put(property, value);
       }
    }
    

    HashMap 相当于具有相似检索时间和复杂性的字典。

    Kotlin 定义:

    @get:JsonAnyGetter
    val details: Map<String, JsonNode>
    

    【讨论】:

    猜你喜欢
    • 2019-11-19
    • 2018-06-24
    • 2021-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多