How to deserialize a web service from an array or JSON object?

I created one web service application on a Windows 7 phone. This is a JSON array obtained from the underlying uri. ... [{"ID": 4, "name": "Bangalore"}, {"ID": 1, "name": "Chennai"}, {"ID": 3, "name": "Hyderabad" }, {"ID": 2, "name": "Mumbai"}] ...

List item = (List) ds.ReadObject (msnew); There is one error in this line (it says while running). alt text An error of deserialization of an object of type .Data at the root level is invalid. Line 1, position 1.

coding:

public MainPage () {InitializeComponent (); }

    [DataContract]
    public class Item
    {           

        [DataMember]
        public int id
        {
            get;
            set;
        }

        [DataMember]
        public string name
        {
            get;
            set;
        }
    }
    private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
    {
        WebClient wc = new WebClient();
        wc.DownloadStringAsync(new Uri("http://75.101.161.83:8080/CityGuide/Cities?authId=CITY4@$pir*$y$t*m$13GUID*5"));
        wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);
    }

    void wc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
    {
       string MyJsonString = e.Result;
      // MessageBox.Show(e.Result);
       DataContractSerializer ds = new DataContractSerializer(typeof(Item));
       MemoryStream msnew = new MemoryStream(Encoding.UTF8.GetBytes(MyJsonString));
       List<Item> item = (List<Item>)ds.ReadObject(msnew);
    }
+3
2

, .

  • DataContractSerializer DataContractJsonSerializer. , , XML, JSON.

  • Item, List<Item>, , json.

:

  var ds = new DataContractJsonSerializer(typeof(Item[]));
  var msnew = new MemoryStream(Encoding.UTF8.GetBytes(MyJsonString));
  Item[] items = (Item[])ds.ReadObject(msnew);

, .

+9

System.Json Silverlight SDK.
WP7, .

+1

Source: https://habr.com/ru/post/1780202/


All Articles