繁体   English   中英

反序列化Json Array Windows Phone 8.0

[英]Deserialise Json Array Windows Phone 8.0

我的JsonArray是

   [
  {
    "A": "asdasd",
    "B": "asdasd",
    "C": "43543543",
    "D": "fdgdfgt54654",
    "E": "54tg54g54g"
  },
  {
    "A": "45tg54tg54g",
    "B": "g45erg45g",
    "C": "rhtfg4hg4g",
    "D": "hdfhg45yg",
    "E": "fgh45yg45"
  },
  {
    "A": "trh4yh45yg",
    "B": "gy45g4554egt5",
    "C": "54hg4rg45g",
    "D": "gtrg45g",
    "E": "fdg54g45g545454"
  }

]

我的课是

public class RootObject
{
    public string A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
    public string D { get; set; }
    public string E { get; set; }
}

我无法将此json数组反序列化为RootObject类...所以请帮助...我尝试通过访问数组的单个成员进行尝试,但那是很长的方法...所以请帮助。

您的课程应该是:

public class RootObject
{
    public string details { get; set; }
    public string deal { get; set; }
    public string company_name { get; set; }
    public string validity { get; set; }
    public string coupon { get; set; }
}

反序列化json字符串:

JsonConvert.DeserializeObject<List<RootObject>>(json string);

您的json对象包含要反序列化的对象的列表。

基本上,您需要告诉反序列化器您具有根对象的List<RootObject> ,即List<RootObject>然后一旦反序列化为该对象,就可以遍历该对象中的每个项目。

像这样的作品:

using System;
using System.Collections.Generic;
using System.Web.Script.Serialization; // Contains JavaScriptSerializer from System.Web.Extensions

namespace Tester
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            deserialize();
        }

        public static void deserialize()
        {

            string jsonRaw = @"[
            {
                'A': 'asdasd',
                'B': 'asdasd',
                'C': '43543543',
                'D': 'fdgdfgt54654',
                'E': '54tg54g54g'
            },
            {
                'A': '45tg54tg54g',
                'B': 'g45erg45g',
                'C': 'rhtfg4hg4g',
                'D': 'hdfhg45yg',
                'E': 'fgh45yg45'
            },
            {
                'A': 'trh4yh45yg',
                'B': 'gy45g4554egt5',
                'C': '54hg4rg45g',
                'D': 'gtrg45g',
                'E': 'fdg54g45g545454'
            }
        ]";

            List<RootObject> rObjects = new JavaScriptSerializer().Deserialize<List<RootObject>>(jsonRaw);
            foreach (var o in rObjects)
            {
                Console.WriteLine(o.A + ", " + o.B + ", " + o.C + ", " + o.D + ", " + o.E);
            }
        }
    }

    public class RootObject
    {
        public string A { get; set; }
        public string B { get; set; }
        public string C { get; set; }
        public string D { get; set; }
        public string E { get; set; }
    }
}

上面的代码输出:

asdasd, asdasd, 43543543, fdgdfgt54654, 54tg54g54g
45tg54tg54g, g45erg45g, rhtfg4hg4g, hdfhg45yg, fgh45yg45
trh4yh45yg, gy45g4554egt5, 54hg4rg45g, gtrg45g, fdg54g45g545454
var syncEntitiesArray = [{"EntityName":"Bulletins","LastSyncDate":"20150525_072418"},{"EntityName":"DatasetFilters","LastSyncDate":"20150525_072418"},{"EntityName":"Datasets","LastSyncDate":"20150525_072418"},{"EntityName":"DatasetItems","LastSyncDate":"20150525_072418"}]

public class DateModel
{
    public string EntityName { get; set; }
    public string LastSyncDate { get; set; }
}

IList<DateModel> myObject = JsonConvert.DeserializeObject<IList<DateModel>>(syncEntitiesArray);

foreach (var obj in myObject)
  {
       string nodeName = obj.EntityName;
       string nodeValue = obj.LastSyncDate;
  }

这对我来说很完美。 希望这对您也有帮助。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM