C#中的解码(JSON)HttpWebResponse

时间:2014-03-11 18:54:25

标签: c# json

这是我的代码:

var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
var vrati = Newtonsoft.Json.JsonConvert.DeserializeObjectAsync(responseString);
log.Text = vrati["f"][0];

我正在使用 Newtonsoft .Json.JsonConvert,我不知道该怎么办。

JSON代码就像

{"a":13,"o":215,"f":["g","i"]}

我希望在我的样本中获得[“f”] [0] ..“g”。请帮助我。

3 个答案:

答案 0 :(得分:0)

尝试使用动态

string responseString = "{\"a\":13,\"o\":215,\"f\":[\"g\",\"i\"]}";
dynamic vrati = JObject.Parse(responseString);

log.Text = vrati["f"][0];

答案 1 :(得分:0)

您可以将其解析为动态对象:

string data = "{\"a\":13,\"o\":215,\"f\":[\"g\",\"i\"]}";
dynamic obj = Newtonsoft.Json.JsonConvert.DeserializeObject(data);
string result = obj.f[0].Value;

答案 2 :(得分:0)

如果你想要动态,快速和肮脏的东西,你可以:

var dynJson = JsonConvert.DeserializeObject<dynamic>("{\"a\":13,\"o\":215,\"f\":[\"g\",\"i\"]}");

    Console.WriteLine(dynJson.a);
    Console.WriteLine(dynJson.o);

    foreach(var something in dynJson.f){
        Console.WriteLine(something);
    }

如果你想要输入某些东西,你可以创建一个与你的Json和Deserialize匹配的对象:

    void Main()
{
    var dynJson = JsonConvert.DeserializeObject<MyThing>("{\"a\":13,\"o\":215,\"f\":[\"g\",\"i\"]}");

    Console.WriteLine(dynJson.a);
    Console.WriteLine(dynJson.o);
    foreach(var something in dynJson.f){
        Console.WriteLine(something);
    }
}

public class MyThing {

    public int a {get;set;}
    public int o {get;set;}
    public List<string> f {get;set;}
}