0
{"sentences":[{"trans":"událost","orig":"event","translit":"","src_translit":""}],"dict":[{"pos":"podstatné jméno","terms":["událost","případ","příhoda","soutěž","sportovní disciplína"],"entry":[{"word":"událost","reverse_translation":["event","occurrence","incident","happening","affair"],"score":0.6872893},{"word":"případ","reverse_translation":["CASE","event","instance","occurrence","episode","subject"],"score":0.017476905},{"word":"příhoda","reverse_translation":["event","incident","episode"],"score":0.0021874912},{"word":"soutěž","reverse_translation":["competition","contest","event"],"score":0.0017304479},{"word":"sportovní disciplína","reverse_translation":["event"],"score":3.2700344e-05}]}],"src":"en","server_time":45}

这段代码我需要解析为自己的对象(它是谷歌翻译器的响应)。.NET 中是否存在“http 响应解析器助手”?

像这样的东西(谷歌浏览器)。

在此处输入图像描述

4

4 回答 4

4

那是JSON数据。Json.NET是一个很好的 .NET 的 JSON(反)序列化器。

于 2013-05-06T23:09:10.500 回答
1

那是JSON。使用任何 C# JSON 反序列化器。

于 2013-05-06T23:09:33.230 回答
1

查看System.Runtime.Serialization.Json.DataContractJsonSerializer课程,它内置于 .Net。

http://msdn.microsoft.com/en-us/library/bb412179.aspx

于 2013-05-06T23:22:09.780 回答
1

它是 Json,您可以使用任何 json-parser 解析它。我将使用Json.Net并使用dynamic关键字

这是你要解析的json

在此处输入图像描述

dynamic json  = JsonConvert.DeserializeObject(text);

foreach (var sentence in json.sentences)
{
    Console.WriteLine((string)sentence.trans);
}
Console.WriteLine();


foreach (var d in json.dict)
{
    Console.WriteLine("***TERMS***");
    foreach (var term in d.terms)
    {
        Console.WriteLine((string)term);
    }

    Console.WriteLine("***ENTRY***");
    foreach (var entry in d.entry)
    {
        Console.WriteLine((string)entry.word + " , "  + (double)entry.score);
    }
}

您还可以使用此站点将您的 json 反序列化为类型安全的类。代码是

var jObj = JsonConvert.DeserializeObject<RootObject>(text);


public class Sentence
{
    public string trans { get; set; }
    public string orig { get; set; }
    public string translit { get; set; }
    public string src_translit { get; set; }
}

public class Entry
{
    public string word { get; set; }
    public List<string> reverse_translation { get; set; }
    public double score { get; set; }
}

public class Dict
{
    public string pos { get; set; }
    public List<string> terms { get; set; }
    public List<Entry> entry { get; set; }
}

public class RootObject
{
    public List<Sentence> sentences { get; set; }
    public List<Dict> dict { get; set; }
    public string src { get; set; }
    public int server_time { get; set; }
}
于 2013-05-06T23:27:35.583 回答