3

私はおそらく本当に簡単なことを忘れていることを認めていますが、それが何であるかを理解することはできません

私はクラスを持っています:

public class UserAgentInfo
{
    public string agent_type { get; set; }
    public string agent_name { get; set; }
    public string agent_version { get; set; }

    public string os_type { get; set; }
    public string os_name { get; set; }
    public string os_versionName { get; set; }
    public string os_versionNumber { get; set; }

    public string linux_distibution { get; set; }
}

次に、Url から Json 文字列を取得し、次のように逆シリアル化しようとします。

using (System.Net.WebClient wc = new System.Net.WebClient())
{
    string json = wc.DownloadString("http://www.useragentstring.com/?getJSON=agent_type-agent_name-agent_version-os_type-os_name-os_versionName-os_versionNumber-linux_distibution&uas=" + o.Browser);

    agentInfo = ServiceStack.Text.TypeSerializer.DeserializeFromString<UserAgentInfo>(json);
}

json文字列は次のとおりです。

"{\"agent_type\":\"Browser\",\"agent_name\":\"Chrome\",\"agent_version\":\"28.0.1500.72\",\"os_type\":\"Windows\",\"os_name\":\"Windows 7\",\"os_versionName\":\"\",\"os_versionNumber\":\"\",\"linux_distibution\":\"Null\"}"

またはC#に慣れていない人向け

"{"agent_type":"Browser","agent_name":"Chrome","agent_version":"28.0.1500.72","os_type":"Windows","os_name":"Windows 7","os_versionName":"","os_versionNumber":"","linux_distibution":"Null"}"

返されるオブジェクトは次のとおりです。

{...UserAgentInfo}
   agent_name: null
   agent_type: null
   agent_version: null
   linux_distibution: null
   os_name: null
   os_type: null
   os_versionName: null
   os_versionNumber: null

私は何が欠けていますか?

4

1 に答える 1

4

JSON文字列を逆シリアル化するには、次を使用したいと思います。

ServiceStack.Text.JsonSerializer.DeserializeFromString<UserAgentInfo>(json)

TypeSerializerJSV 形式 ( json-csv-jsv-serializers ) 用です。

于 2013-07-17T12:04:30.000 に答える