私はJObjectを呼び出しました:
jObject.values
だから私はMap [String、Any]を取得します。このマップを変更し、Map[String, Any] の新しいインスタンスを取得します。そして今、「値」メソッドとは逆のことを達成しません。Map[String, Any] を JObject (または json 文字列) に変換しません。
.values
を呼び出すと、フィールドに関連付けられた型情報が失われるため、やや注意が必要です (したがって、マップの値の型が である理由Any
)。
を取得するには、コンストラクターにJObject
a を渡す必要があります。List[JField]
したがって、各マップ エントリ ( (String, Any)
) をJField
. 名前のマッピングは簡単です。課題は を に変換するAny
ことJValue
です。
おそらく、パターン マッチングまたは型チェックを使用して何かを行うことができます (たとえば、値が の場合は、Int
int にキャストして a でラップしますJInt
) が、すべての不完全なパターン マッチングと同様に、これは脆弱になります。それらが出てきた方法でそれらを元に戻すための非プリミティブですか?
したがって、一般的に、これを行う最善の方法は、の出力からこれを行うのではなく.values
、オブジェクトをそれ自体に渡すことです。型情報を失ってしまうと、完全に元に戻すことは難しく、ほとんどの解決策には脆弱な当て推量が必要になります。