我就调用JObject:如何将Map [String,Any]转换为Json?
jObject.values
,所以我得到地图[字符串,任何]。我修改这张地图并获得Map [String,Any]的新实例。现在我不会实现的东西扭转到“价值”的方法:我不会将我的地图[字符串,任何]到JObject(或JSON字符串)
我就调用JObject:如何将Map [String,Any]转换为Json?
jObject.values
,所以我得到地图[字符串,任何]。我修改这张地图并获得Map [String,Any]的新实例。现在我不会实现的东西扭转到“价值”的方法:我不会将我的地图[字符串,任何]到JObject(或JSON字符串)
这有点棘手,因为通过调用.values
你失去了关联的类型信息字段(因此为什么地图的值类型是Any
)。
为了获得JObject
,您需要将List[JField]
传递给构造函数。因此,您需要将每个地图条目((String, Any)
)转换为JField
。映射名字是微不足道的;挑战是将Any
转换为JValue
。你可以做一些模式匹配或类型检查(例如,如果值是一个Int
,将其转换为int并包装在JInt
中),但是与所有不完全模式匹配一样,这将会很脆弱 - 你如何处理非原始文件以将它们包装出来?
所以我建议在一般情况下,要做到这一点的最好办法是不尝试从.values
输出做到这一点,但通过自己周围的物体。一旦你失去了类型信息,很难确定,几乎任何解决方案都必然涉及脆弱的猜测。
感谢您的回复。浏览lift-json代码我有同样的结论,但是你的帖子向我保证 – user1511848 2012-07-09 12:32:39
你需要把你所尝试做的..所以这将很容易帮助你! – Zamani 2012-07-09 11:46:32