1

json は、POST メソッドを使用してブラウザーからサーバーの ASP.NET MVC4 アプリケーション コントローラーに渡されます。これには、3 つが 0..20 要素の配列であるプロパティが含まれています (以下のコードでは、すべての要素が 1 つしかありません)。このjsonをC#で解析するには? 署名付きコントローラーを試してみました

public JsonResult RegisterSales(Sale mysale)

ただし、mysale プロパティは割り当てられていません。

渡されたjson:

{ "id":"sale1",
  "sale_date":"2013-11-10 19:20:44"
  "taxes":[{"id":"km20pr","name":"20%","rate":0.2}],
  "products":[{"id":"prod1",
            "sale_id":"sale1",
            "register_id":"register1",
            "quantity":"1.00000"}],

  "payments":[{"id":"payment1",
            "sale_id":"sale1",
            "register_id":"register1",
           "amount": 0
      }]
 }

次のようなC#構造に解析する必要があります

public class Sale
        {
            public string id;
            public DateTime sale_date;
            public Tax[] taxes;
            public Product[] products;
            public Payment[] payments;
        }

public class Tax
        {
            public string id, name;
            public decimal rate;
        }

public class Product
        {
            public string id, sale_id, register_id;
            public decimal quantity;
        }


public class Payment
        {
            public string id, sale_id, register_id;
            public decimal amount;
        }
4

3 に答える 3

1

次のように、NewtonSoft JSON Deserialize を使用します。

class School
{
    public string student;
    public object[] data;
}

School datum = JsonConvert.Deserialize<School>(jsonStr);
//Do stuff with datum...

楽しみ。

于 2013-11-10T21:45:18.793 に答える
0

正しいコンテンツ タイプでデータを投稿する必要があります。この場合、それは application/json です。MVC は、サーバーにデータを送信するために使用されるコンテンツ タイプに基づいて、正しいバインド モードを選択します。

于 2013-11-10T21:45:11.970 に答える