• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Android > Xamarin android 的WebClient Json下载并存储本地及sqlite数据库,xamarinsqlite

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

作者:网友 字体:[增加 减小] 来源:互联网 时间:2017-05-26

网友通过本文主要向大家介绍了Xamarin android 的WebClient Json下载并存储本地及sqlite数据库,xamarinsqlite等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

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


这一点雕虫小技可能对熟悉的人来说已经不值一提。但是我想,既然这些都是常用的功能,集成在一起做个笔记也有点意义吧。

首先,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库,处处透露着简洁至上的理念,非常喜欢这风格。不像某些语言,总是把简单问题复杂化,非要把什么东西都定义成类,有故弄玄虚之嫌。

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

 

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

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

相关文章

  • 2017-05-26注册时获取验证码常用的倒计时工具,注册时验证码
  • 2017-05-26Android 5.0(包含5.0以下版本) 获取栈顶应用程序包名,android包名
  • 2017-05-26如何挂载ubi文件系统
  • 2017-05-26致DBA:为什么你经常犯错,是因为你做的功课不够
  • 2017-05-26Apk去掉签名以及重新签名的方法,apk去掉签名
  • 2017-05-26compileDebugJavaWithJavac,compiledebugjava
  • 2017-05-26pull解析器: 反序列化与序列化,pull序列化
  • 2017-05-26Eclipse迁移到Android studio步骤如下:,eclipseandroid
  • 2017-05-26Android中ContentProvider组件数据共享
  • 2017-05-26活动的生周期(四)活动结束前的数据保存,周期活动结束

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Android学习——四种绑定监听事件,android监听
    • Android_安卓为按钮控件绑定事件的五种方式,android按钮控件
    • Android合并两个APP的具体做法(掌握)
    • 基于Nginx实现10万+并发,你应该做的Linux内核优化
    • 通过 Intent 传递类对象
    • android MediaPlayer 错误代码(error code)总结 转载,androidmediaplayer
    • 如何正确配置Nginx+PHP
    • lua中使用luasocket通信,写了一个简单的事件库
    • Android 获取当前网速质量调整网络请求
    • Linux(CentOS 7)命令行模式安装VMware Tools

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有