![](/img/trans.png)
[英]windows phone: deserialise and store both json key and value to modal
[英]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.