2012-07-09 65 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

相关问题