[Haskell-cafe] Aeson js question

Yuras Shumovich shumovichy at gmail.com
Thu Nov 14 12:39:19 UTC 2013


Hi,

The "ContainerNetworkSettingsPorts" should actually be a "Data.Map
String ContainerNetworkSettingsPort"

data ContainerNetworkSettingsPort = ContainerNetworkSettingsPort {
  HostIp :: String,
  HostPort :: String
}

type ContainerNetworkSettingsPorts = Map String ContainerNetworkSettingsPort

You can reuse instance FromJSON a => FromJSON (Map String a)

Thanks,
Yuras

On Thu, 2013-11-14 at 11:22 +0100, hc at j4.pe wrote:
> Hello everyone,
> 
> I'd use aeson to parse JSON. I did much of the translation JSon in
> Haskell data but I'm stuck on one point.
> 
> Suppose I have a JSon object that is in this form:
> 
> {\"Ports\":{\"22/tcp\":[{\"HostIp\":\"0.0.0.0\",\"HostPort\":\"49154\"}],\"80/tcp\":[{\"HostIp\":\"0.0.0.0\",\"HostPort\":\"49155\"}]}
> 
> I do not know how to "bind" the key name and value knowing that the
> key changes name "randomly". Example with port 21 and port 8888:
> 
> {\"Ports\":{\"21/tcp\":[{\"HostIp\":\"0.0.0.0\",\"HostPort\":\"49154\"}],\"8888/tcp\":[{\"HostIp\":\"0.0.0.0\",\"HostPort\":\"49155\"}]}}
> 
> All code : http://lpaste.net/95607
> 
> Thank you for your help.
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe




More information about the Haskell-Cafe mailing list