2012-07-09 114 views
1

我就調用JObject:如何將Map [String,Any]轉換爲Json?

jObject.values 

,所以我得到地圖[字符串,任何]。我修改這張地圖並獲得Map [String,Any]的新實例。現在我不會實現的東西扭轉到「價值」的方法:我不會將我的地圖[字符串,任何]到JObject(或JSON字符串)

+0

你需要把你所嘗試做的..所以這將很容易幫助你! – Zamani 2012-07-09 11:46:32

回答

2

這有點棘手,因爲通過調用.values你失去了關聯的類型信息字段(因此爲什麼地圖的值類型是Any)。

爲了獲得JObject,您需要將List[JField]傳遞給構造函數。因此,您需要將每個地圖條目((String, Any))轉換爲JField。映射名字是微不足道的;挑戰是將Any轉換爲JValue。你可以做一些模式匹配或類型檢查(例如,如果值是一個Int,將其轉換爲int幷包裝在JInt中),但是與所有不完全模式匹配一​​樣,這將會很脆弱 - 你如何處理非原始文件以將它們包裝出來?


所以我建議在一般情況下,要做到這一點的最好辦法是嘗試從.values輸出做到這一點,但通過自己周圍的物體。一旦你失去了類型信息,很難確定,幾乎任何解決方案都必然涉及脆弱的猜測。

+0

感謝您的回覆。瀏覽lift-json代碼我有同樣的結論,但是你的帖子向我保證 – user1511848 2012-07-09 12:32:39

相關問題