1

このJSONをC# 4.0のオブジェクトに解析するのを手伝ってくれる人はいますか? この 2 日間、試してみました。
私はJSON.NETと他のいくつかの人々の提案を無駄にしています。

JSONサンプルを提供して、提案を求めるだけが最善だと思いました.

{
"message-count":"1",
"messages":[
        {"to":"441234567890",
          "messageprice":"0.02900000",
          "status":"0",
          "messageid":"030000001DFE2CB1",
          "remainingbalance":"1.56500000",
                      "network":"23433"}
                ]
}

どうもありがとう、エイドリアン

ps githubを使用したい場合は、ここにいくつかの素晴らしいコードがあります。https://github.com/lukesampson/HastyAPI.Nexmo

4

2 に答える 2

2

このツールを使用して、C# クラスをカンニングしてすばやく作成します: http://json2csharp.com/ (またはhttp://jsonclassgenerator.codeplex.com/を発見したばかり)

ここに画像の説明を入力

次に、C# クラスを好みに合わせて変更します

public class MessagesJSON
{
    public int MessageCount { get; set; }
    public List<Message> Messages { get; set; }
}

public class Message
{
    public string To { get; set; }
    public double MessagePrice { get; set; }
    public int Status { get; set; }
    public string MessageId { get; set; }
    public double RemainingBalance { get; set; }
    public string Network { get; set; }
}

MessagesJSONは、C# に渡す JSON オブジェクトを表す名前です。

クライアントから JSON 文字列を渡します。

{\"MessageCount\":1,\"Messages\":[{\"To\":\"441234567890\",\"MessagePrice\":0.029,\"Status\":0,\"MessageId\":\"030000001DFE2CB1\",\"RemainingBalance\":1.565,\"Network\":\"23433\"}]

次に、JSON.NET を使用して JSON を C# オブジェクトに変換します。

public void YourMethod(MessagesJSON json) {
   var result = JsonConvert.DeserializeObject<MessagesJSON>(json);
}

結果は次のとおりです。

ここに画像の説明を入力

大文字に注意してください。

小文字の JSON キーのみを使用する場合は、C# クラスを小文字に変更します。設定; }

C# クラス:

 public class MessagesJSON
    {
        public int message_count { get; set; }
        public List<Message> messages { get; set; }
    }

public class Message
{
    public string to { get; set; }
    public string messageprice { get; set; }
    public string status { get; set; }
    public string messageid { get; set; }
    public string remainingbalance { get; set; }
    public string network { get; set; }
}

これは、必要に応じて JSON に近いものです。

{\"message_count\":1,\"messages\":[{\"to\":\"441234567890\",\"messageprice\":\"0.02900000\",\"status\":\"0\",\"messageid\":\"030000001DFE2CB1\",\"remainingbalance\":\"1.56500000\",\"network\":\"23433\"}]}

ここに画像の説明を入力

または、キャメルケーシングが本当に好きな場合は、次のソリューションのいずれかを使用してください。

Json.NetでPropertyNameが明示的に設定されていない場合にのみキャメルケース?

JSON.Net を使用した JObject & CamelCase 変換

自分は属性の方が好き

public class Message
    {
        [JsonProperty("to")]
        public string To { get; set; }

        [JsonProperty("messageprice")]
        public string MessagePrice { get; set; }

        [JsonProperty("status")]
        public string Status { get; set; }

        [JsonProperty("messageid")]
        public string MessageId { get; set; }

        [JsonProperty("remainingbalance")]
        public string RemainingBalance { get; set; }

        [JsonProperty("network")]
        public string Network { get; set; }
    }

あなたの文字列を渡します:

"{\"message_count\":1,\"messages\":[{\"to\":\"441234567890\",\"messageprice\":\"0.02900000\",\"status\":\"0\",\"messageid\":\"030000001DFE2CB1\",\"remainingbalance\":\"1.56500000\",\"network\":\"23433\"}]}"

しかし、きれいな C# プロパティ名を取得します。

ここに画像の説明を入力

于 2013-07-30T11:49:09.117 に答える
0

jsonと同じ構造のオブジェクトを作成して呼び出します。

JsonConvert.DeserializeObject<Entity>(json);

編集。このようにしたい場合は、JSON.NET を使用する必要があります。

于 2013-07-30T11:31:32.823 に答える