如何将 C# 代码转换为 Kotlin 由 Json 库组成
Posted
技术标签:
【中文标题】如何将 C# 代码转换为 Kotlin 由 Json 库组成【英文标题】:how to convert C# code to Kotlin consist of Json library 【发布时间】: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;
【问题讨论】:
【参考方案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>
【讨论】:
我还有一个问题。 Idictionary 可以转换成 kotlin 吗? Map 是等效接口。 kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-map 对不起,你是对的。查看***.com/questions/50750036/… 获取 kotlin 使用示例。 数据类 ProofAttribute(@JsonProperty("raw") var Raw: String, @get:JsonAnyGetter var Rest:Map以上是关于如何将 C# 代码转换为 Kotlin 由 Json 库组成的主要内容,如果未能解决你的问题,请参考以下文章
如何将Long值转换为日期时间并将当前时间转换为Long kotlin?
如何使用内容协商将 json 转换为 ktor 中的 kotlin 对象?
如何将 Int 转换为 ByteArray,然后使用 Kotlin 将其转换回 Int?