Как получить массив данных из массива json, используя WEB API в mvc3? - PullRequest
0 голосов
/ 14 ноября 2011

У меня есть создание веб-сервисов с использованием Web Api в mvc3, в этом я хочу получить данные из JSON.Json Результат вот так

   {"order": {
  "locationid": "1",
   "deviceidentifier": "XXXXXXXXXXXXXXXXXXXXXXX",
   "ordercontactname": "XXXXXXXXXXXXXXXXXXXXXXX",
   "ordercontactphone": "XXXXXXXXXXXXXXXXXXXXXXX",
   "ordercontactemail": "XXXXXXXXXXXXXXXXXXXXXXX",
   "shipaddress1": "17 Brookfield",
   "shipaddress2": "Suite 17",
   "shipcity": "Irvine",
   "shipstate": "CA",
   "shipzipcode": "92604",
   "shipphonenumber": "9493742114",
   "shipemail": "Info@mail.com",
   "shipmethod": "pickup",
   "billingfirstname":"Tester",
   "billinglastname":"test",
   "billingmiddleinitial":"S",
   "billingaddress":"field",
   "billingcity":"Sample",
   "billingstate":"SM",
   "billingzipcode":"523201",
   "billingphonenumber": "1234567891",
   "billingemail": "",
   "paytype":"creditcard",
  "amount"="10.50",
  "acctno"="123456789987",
  "exproute"="0114",
  "coupon"="X2323",
  "notes"="",
   "items": [
   {"itemid":"1","quantity":"1","price":"2.5","notes":"make it spicy"},
   {"itemid":"4","quantity":"2","price":"4.5","notes":""},
   {"itemid":"3","quantity":"1","price":"1.5","notes":""}
    ]
  }}

для этого у меня есть класс Poco, и я получаю данные заказа, используя класс Poco, но я не могу получить данные массива элементов, как я могу получить данные элементов

Here is my code

     public List<Message> PlaceOrder(PlaceOrder  order)
       {
          //  List<PlaceOrder> entities =         (List<PlaceOrder>)JavaScriptConvert.DeserializeObject(json, typeof(List<PlaceOrder>));
        int PayOrderID = 0;
        List<Message> Result;
        Result = new List<Message>();
        try
        {
            Order objOrder = new Order();
            PayHist objPayhis = new PayHist();
            objOrder.LocationId = order.LocationId;
            objOrder.DeviceIdentifier = order.DeviceIdentifier;
            objOrder.OrderContactName = order.OrderContactName;
            objOrder.OrderContactPhone = order.OrderContactPhone;
            objOrder.OrderContactEmail = order.OrderContactEmail;
            string guid = Guid.NewGuid().ToString();
            objOrder.ShipMethod = order.ShipMethod;
            objOrder.ShippingDate = Convert.ToDateTime(order.PickupDate);
            objOrder.OrderGuid = guid;
            entities.AddObject("Orders", objOrder);
            entities.SaveChanges();
            int orderId = objOrder.OrderId;
            PayOrderID = orderId;
            objPayhis.OrderId = orderId;
            objPayhis.PayType = order.ShipMethod;
            objPayhis.Amount = float.Parse(order.Amount);
            entities.AddObject("PayHists", objPayhis);
            entities.SaveChanges();
            JavaScriptSerializer ser = new JavaScriptSerializer();
           // Order foo = ser.Deserialize<Order>(json);

            Message objMessage = new Message();
            objMessage.Messagevalue = "Sucess";
            Result.Add(objMessage);
            return Result;


        }

Пожалуйста, помогите мне ..

1 Ответ

1 голос
/ 14 ноября 2011

Попробуйте это (вам нужно исправить свой Json, заменив знаки "=" на ":" signs "раньше):

[WebInvoke(Method = "POST", UriTemplate = "")]
public HttpResponseMessage Add(JsonValue json) {
    JsonValue order = json["order"];
    JsonArray items = (JsonArray) order["items"];
    JsonValue item1 = items[0];
    var notes1 = item1["notes"];
    return new HttpResponseMessage(HttpStatusCode.OK);
}
...