使用F#解析JSON(不是序列化)

时间:2011-06-15 17:16:00

标签: json parsing f#

我正在尝试在我的F#应用程序中构建一个树(通过一个有区别的联合类型)来代表我的数据。我研究了网络上可用的内容,我发现了JavaScriptSerializerDataContractJsonSerializer之类的内容。问题是,我并没有真正将数据序列化为特定对象。

这是我受歧视的联盟:

type ParameterTree =
    | End
    | Node of string * Dictionary<string, Parameter> * ParameterTree

我基本上希望能够从流中读入并使用我从流中获取的数据填充ParameterTree(包括适当的父/子关系)。我被困在从哪里开始。如果有人能指出我正确的方向,我将不胜感激。

1 个答案:

答案 0 :(得分:3)

我认为最好的选择是使用一些更轻量级的库,它只是在某些.NET字典中为您提供解析后的键/值对,然后将数据转换为一个很好的F#区分联合。

Json.NET library有一个JObject.Parse方法,似乎正是这样做的。以下是来自其网站的C#示例:

JObject o = JObject.Parse(json);
string name = (string)o["Name"];
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];

JObjectJArray结构转换为您的联合类型应该不会太困难。

相关问题