用方括号解析字符串到json

时间:2015-10-08 09:57:09

标签: c# json

我想将这个字符串解析为Json:

String str="[{\"property\":\"insert_date\",\"direction\":\"ASC\"}]"

我试过这个:

dynamic myObject=Newtonsoft.Json.JsonConvert.DeserializeObject(str)

但它会返回一些JArray。 我想读取简单的值:

String dir=myObject.direction;

一个选项是解析字符串并从字符串中删除方形对象。比它会工作。但我想以更恰当的方式做到这一点。

2 个答案:

答案 0 :(得分:3)

一种方法是创建一个类并将其反序列化为List<ThatClass>

例如:

public class Foo
{
    [JsonProperty("property")]
    public string Property { get; set; }
    [JsonProperty("direction")]
    public string Direction { get; set; }
}

并像这样使用它:

var foos = JsonConvert.DeserializeObject<List<Foo>>(str);
var foo = foos.First();
Console.WriteLine(foo.Direction);

另一种方法是使用dynamic,只需访问JArray的第一个元素:

String str = "[{\"property\":\"insert_date\",\"direction\":\"ASC\"}]";
dynamic objects = JsonConvert.DeserializeObject<dynamic>(str);
Console.WriteLine(objects[0].direction);

答案 1 :(得分:0)

嗯,我想你只需要这样做:

String dir = myobject[0].direction;

这可能是我认为最好的选择