游戏技术文章

Xamarin android 的WebClient Json下载并存储本地及sqlite数据库

时间:2017-4-5 13:25:14  作者:棋牌资源网  来源:棋牌资源网  查看:7835  评论:0
内容摘要:这一点雕虫小技可能对熟悉的人来说已经不值一提。但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧。首先,json 是传递数据的事实标准了。所以先说一下将它从服务器端下载下来。.net 里的库是极好的,这也是我对Xamarin颇有好感的一个原因。一个WebClient...
这一点雕虫小技可能对熟悉的人来说已经不值一提。但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧。

首先,json 是传递数据的事实标准了。所以先说一下将它从服务器端下载下来。.net 里的库是极好的,这也是我对Xamarin颇有好感的一个原因。一个WebClient就可以将任何数据下载下来,爽极了。

System.Net.WebClient wc = new System.Net.WebClient();
string s = wc.DownloadString(http://192.168.0.100/data.json);

当然,服务器端要有这个文件,或者一个能够返回json数据的网页。

下一步,如果我想把这个文件保存到本地呢?也好办,用一个System.IO.File,一句话即可搞定。System.IO.File.WriteAllText("localdata.json",s);

这里需要注意的是,本地文件保存的时候涉及到权限。所以最好保存到应用的私有空间内,也保证了安全,象下面这样。

string fn = System.IO.Path.Combine(System.Environment.GetFolderPathSystem.Environment.SpecialFolder.Personal) ,"localdata.json");
System.IO.File.WriteAllText(fn,s);

如果没有涉及到数据库的内容,到此就结束了。

可是,有很多需求是想把服务器端的数据保存到本地数据库。这样用起来方便且快。安卓中最常用的数据库是SQLite. 与之对应的库是SQLite.net. 这个库也是极好的,使用起来极其简便。同时,他也是一个ORM,所以满足了绝大多数人的口味。

使用时,需要引用它的Package,直接install-package。但是在这个之前,我想把json数据变成对象再保存在数据库里,这样用起来方便。所以先引用json库。

 install-package Newtonsoft.json 

它自动给下载了匹配当前工程的最新版本,目前的版本是10.0.2。然后写代码,编译。

出问题了。竟然编译不通过!说它依赖的一个库可能不匹配Xamarin android profile。
弄了很久,最后安装了6.0.0版,编译通过了。到现在不知道什么原因。

加上引用后,就要使用了。我首先将前面的json文件反序列化成对象列表,我这里定义了一个User类。

 List<User> list= JsonConvert.DeserializeObject<List<User>>(s);

竟然十分顺利地成功了。
下一步需要引用SQLite.net库了。这次很顺利,没出什么乱子。

Install-Package sqlite-net-pcl

用的是sqlite-net-pcl,专门为移动设备用的吧?
下一步,建表。

 var cnn= new SQLite.SQLiteConnection(Helper.PrivateFileName("db"));
 cnn.CreateTable<User>();

需要先建立SQLiteConnection对象,参数是本地的数据库文件名。然后用CreateTable<T>来建表。

接下来,把数据插入表中。

 cnn.InsertAll(list);

再下面,查询全部数据。

List<User> users = cnn.Table<User>().ToList();

代码都是那样简洁,那样美丽,几乎都是一句。

令人感动的是C#和.net库,处处透露着简洁至上的理念,非常喜欢这风格。不像某些语言,总是把简单问题复杂化,非要把什么东西都定义成类,有故弄玄虚之嫌。

今天就先到这里吧,以后再说点更详细的东西。

标签:Xamarinandroid的WebClientJson下载并存储本地及sqlite数据库 

欢迎加入VIP,【VIP售价:只要288元永久VIP会员】畅享商业棋牌游戏程序下载,点击开通!

下载说明


☉本站所有源码和资源均由站长亲自测试-绝对保证都可以架设,运营!
☉如源码和资源有损坏或所有链接均不能下载,请告知管理员,

☉本站软件和源码大部分为站长独资,资源购买和收集,放心下载!

☉唯一站长QQ:1004003180  [人格担保-本站注重诚信!]

☉购买建议E-mail:1004003180@qq.com   源码收购 E-mail:1004003180@qq.com    

☉本站文件解压密码  【文章内都自带解压密码,每个密码不同!】


本站提供的所有源码,均来源站长提供,仅学习交流 浙ICP备09009969号

由此产生不良后果和法律责任与本站无关,如果侵犯了您的版权,请来信告知 1004003180@qq.com 将及时更正和删除! 

Copyright © 2008-2022 棋牌资源网,你身边的棋牌资源下载站    All Rights Reserved