[英]type 'String' is not a subtype of type 'double' while converting from JSON
[英]Retain type annotation while converting from ION to JSON
我有一個來源,我從那里獲得序列化的 ION 數據,其類型在多態類型字段上注釋。 使用以下代碼轉換為 JSON 時,它丟失了類型注釋。 有什么方法可以將離子類型注釋作為轉換后的 JSON 中的字段?
private final IonSystem system = IonSystemBuilder.standard().build();
public String convert(final String serializedIon) {
final IonValue ionValue = system.singleValue(serializedIon);
final StringBuilder stringBuilder = new StringBuilder();
final IonWriter writer = IonTextWriterBuilder.json().build(stringBuilder);
ionValue.writeTo(writer);
return stringBuilder.toString();
}
輸入離子
{matchConditions: [TypeA::{}, TypeB::{}]}
Output JSON
{"matchConditions": [{}, {}]}
預計JSON
{"matchConditions": [{"type": "TypeA"}, {"type": "TypeB"}}
我無法控制 ION 如何在源代碼中序列化。 今后我可能可以為將來的數據更改它,但仍然需要一些方法來處理已經生成的數據。
IonTextWriter
IonTextWriterBuilder.json()
生成的 IonTextWriter 遵循Ion Cookbook中描述的 JSON 下轉換算法。 請注意第 13 步,它指示注釋被刪除。
ion-java
不提供任何其他開箱即用的自動 JSON 下轉換工具。 您需要編寫自己的序列化邏輯來適應這個特定的用例,注意避免下游代碼意外地將您添加的type
字段解釋為真實數據(即:不是元數據)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.