silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Silverlight 加载JSON文件 以及反序列化大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

在写 Silverlight Demo的过程中,由于不想@R_362_9446@库的东西,于是把数据存储在JSON的配置文件中,通过加载并解析 JSON文件来实现加载数据到前端 首先建立silverlight 应用程序 在  Web 工程中增加一个文本文件 命名为 json.txt,输入如下内容 [{"contryname" : "日本", "capital" : "东京"}, {"contryname" :
@H_673_15@

在写 Silverlight Demo的过程中,由于不想涉及到数据库的东西,于是把数据存储在JSON的配置文件中,通过加载并解析 JSON文件来实现加载数据到前端

首先建立silverlight 应用程序 在  Web 工程中增加一个文本文件 命名为 json.txt,输入如下内容

[{"contryname" : "日本","capital" : "东京"},
{"contryname" : "中国","capital" : "北京"},
{"contryname" : "美国","capital" : "华盛顿"},
{"contryname" : "印度","capital" : "新德里"}]

在Silverlight 的工程里面 使用webclient加载 json文件

  private void button1_Click(object sender,RoutedEventArgs E)
        {
            Uri serviceuri = new Uri("http://localhost:38716/json.txt");
            WebClient downloader = new WebClient();
            downloader.openReadCoR_487_11845@pleted += new openReadCoR_487_11845@pletedEventHandler(downloader_OpenReadCoR_487_11845@pleted);
            downloader.openReadAsync(serviceuri);
        }

        void downloader_OpenReadCoR_487_11845@pleted(object sender,OpenReadCoR_487_11845@pletedEventArgs E)
        {
            StreamReader reader = new StreamReader(e.Result);
           
          //  messageBox.Show(reader.ReadToEnd());
            JsonArray jdata =(JsonArray) JsonArray.Parse(reader.ReadToEnd());
           
        }

这样 JSON对象数组就保存到了 jdata里面 可以使用 foreach 来进行遍历

 foreach (JsonObject j in jdata)
            {
                messageBox.Show(j["国家"]);
            }
 
  在 .NET 的WEB 开发后台中我们可以使用JavaScriptserializer 来进行序列化和反序列化,然后再SL中却无法使用这个 
 
protected void Page_Load(object sender,EventArgs E)
{
Personnel personnel = new Personnel();
personnel.Id = 1;
personnel.Name = "小白";


JavaScriptserializer jsonserializer = new JavaScriptserializer();
//执行序列化
String r1 = jsonserializer.serialize(personnel);

//执行反序列化
Personnel _Personnel = jsonserializer.Deserialize<Personnel>(r1);
}

不过可以使用DataContractJsonserializer 来实现,注意要在在Silverlight端引入System.serviceModel.Web.dll和System.Runtime.serialization.dll,



       public class country
        {
      pubulic      String contryname { set; get; }
       public      String capital { set; get; }
        }

由于我传递时是一个JSOn对象的数组,所以我 们将或得到的数据序列化为 List 对象
 DataContractJsonserializer js = new DataContractJsonserializer(typeof(List<country>));
            List<country> ls = js.ReadObject(e.Result) as List<country>;
            foreach (country c in ls)
            {
                messageBox.Show(c.contryName);
            }


如果我们要将 List 对象 序列化为字符串呢。如下

 
  DataContractJsonserializer js2=new DataContractJsonserializer(typeof(List<country>));
  MemoryStream stream = new MemoryStream();
  js2.WriteObject(stream,ls);
  String s = Encoding.UTF8.GetString(stream.ToArray(),stream.ToArray().Length);

 

JSON对象数组字符串则保存在 变量s中

大佬总结

以上是大佬教程为你收集整理的Silverlight 加载JSON文件 以及反序列化全部内容,希望文章能够帮你解决Silverlight 加载JSON文件 以及反序列化所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。