下面这个实战目标很简单,就是从网上获取JSON然后在ListBox上显示出来,基础知识前面几篇博客都讲到了,这里只是综合训练。

首先VS要解析JSON还是得要做一些工作的,详情看一下:

http://jingyan.baidu.com/article/6fb756ecd2b051241858fbef.html

首先看一下我们要解析的JSON:

[{"count": 17, "filename": "Lab1.pdf", "height": 744, "width": 1052, "file_id": "25"}, {"count": 13, "filename": "22.pdf", "height": 744, "width": 1052, "file_id": "26"}, {"count": 13, "filename": "22.pdf", "height": 744, "width": 1052, "file_id": "27"}, {"count": 8, "filename": "\u6613\u4f20-613.pdf", "height": 744, "width": 1052, "file_id": "31"}]

这里保存着一些电子书的信息,我们需要提取有用的信息ID和NAME,并且将NAME显示出来。

先创建类来保存每一项的信息:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace JsonExample
{/// <summary>/// 存储每一项的消息/// </summary>public class BookInfo{public String BookId { get; set; }public String BookName { get; set; }public BookInfo(String i, String n){BookId = i;BookName = n;}public BookInfo(){ }}
}

然后弄一下界面XAML:

<phone:PhoneApplicationPagex:Class="JsonExample.MainPage"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d"FontFamily="{StaticResource PhoneFontFamilyNormal}"FontSize="{StaticResource PhoneFontSizeNormal}"Foreground="{StaticResource PhoneForegroundBrush}"SupportedOrientations="Portrait" Orientation="Portrait"shell:SystemTray.IsVisible="True"><Grid><ListBox x:Name="Lst"><ListBox.ItemTemplate><DataTemplate><Grid><TextBlock Text="{Binding Path=BookName}" Margin="70 10" FontSize="18"></TextBlock></Grid></DataTemplate></ListBox.ItemTemplate></ListBox></Grid></phone:PhoneApplicationPage>

这里面的布局上一篇BLOG讲了。

然后就是最关键的隐藏CS文件了:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Navigation;
using Microsoft.Phone.Controls;
using Microsoft.Phone.Shell;
using JsonExample.Resources;
using System.Collections.ObjectModel;
using System.IO;
using Newtonsoft.Json.Linq;namespace JsonExample
{public partial class MainPage : PhoneApplicationPage{private ObservableCollection<BookInfo> books;private String API = "http://sysucs.org:8080/list";// 构造函数public MainPage(){InitializeComponent();books = new ObservableCollection<BookInfo>();Lst.ItemsSource = books;Download(API);}private void Download(String uri){System.Net.WebClient client = new System.Net.WebClient();client.OpenReadAsync(new Uri(uri));client.OpenReadCompleted += new System.Net.OpenReadCompletedEventHandler(webclient_openReadCompleted);}private void webclient_openReadCompleted(object sender, System.Net.OpenReadCompletedEventArgs e){using (StreamReader s = new StreamReader(e.Result)){string str = s.ReadToEnd();JArray arr = new JArray(str);var jsonVals = JArray.Parse(str);foreach (JObject obj in jsonVals){BookInfo info = new BookInfo();info.BookId = (String)obj["file_id"];info.BookName = (String)obj["filename"];books.Add(info);}}}}
}

最后能保存每一本图书的信息并且将名字显示出来。

Winphone开发之JSON解析相关推荐

  1. android之json解析优化,Android开发之json解析

    目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...

  2. Flutter开发之JSON解析

    对于JSON格式的数据交互,想必大家不会陌生.JSON(全称JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式,JSON因为具有易于人阅读和编写,同时 ...

  3. IOS开发之JSON序列化从客户端发送到服务器端

    IOS开发之JSON序列化从客户端发送到服务端的准备工作 共有6种情况 需要序列化 请查看源代码. 服务器端接受我们采用的是java的Tomcat服务器.配合 struts 2 controller框 ...

  4. IOS开发之JSON文件的读写

    IOS开发之JSON文件的读写 // // ViewController.m // 20-JSON的读写 // // Created by 鲁军 on 2021/2/13. //#import &qu ...

  5. Flutter开发之JSON及序列化(29)

    本文介绍了使用JSON的两个常规策略: 手动序列化和反序列化 通过代码生成自动序列化和反序列化 不同的项目具有不同的复杂度和场景.对于较小项目,使用代码生成器可能会过度.对于具有多个JSON mode ...

  6. android开发之 Gson 解析json数组

    为了纪念两天解决的一个问题. 刚刚接触到android的volley 框架,使用jsonarrayrequest的时候,得到jsonarray 问高手说可以用Gson 来解析于是开始了两天的钻研之路. ...

  7. WinPhone开发之GeoCoordinateWatcher

    在进行WinPhone开发时,想使用手机的GPS定位服务,当然此功能只能在真机调试. 但是在进行真机调试时,想常规应用一样调试时,虽然在设置里开了定位服务,但是还是会遇到问题: 在调用 GeoCoor ...

  8. [Unity3D]Unity3D游戏开发之Xml解析实现NPC对话系统

    各位朋友,大家好,我是秦元培,欢迎大家关注我的博客,我的博客地址是blog.csdn.net/qinyuanpei.今天我们来说说Unity3D中Xml的解析,为什么要说Xml的解析呢?因为在项目中我 ...

  9. Android程序解析xml至文档中,Android开发之DOM解析xml文件的方法

    本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 李明 30 李向梅 25 二.在service中写一个DOM解析的操作 ...

最新文章

  1. PagedGeometry 笔记03
  2. 电脑练习打字软件_KeyBlaze Free Typing Tutor(打字练习软件)最新版下载_KeyBlaze Free Typing Tutor(打字练习软件)最新版本下载v4.02官方版...
  3. Apache POI和EasyExcel 第五集:Apache POI的Excel读取不同类型的数据
  4. angular-fullstack test
  5. 那些不被关注但很重要的html标签
  6. python怎么安装pandas模块-如何优雅的安装Python的pandas?
  7. JavaScript学习记录总结(四)——js函数的特殊性
  8. 计算c53的c语言的程序,C程序设计的常用算法.doc
  9. django html直接调用的方法,如何在Django中使用AJAX从html正确调用函数/url?
  10. 简述可编程控制器硬件组态及网络通信的核心思想_智能硬件设计报价诚信经营...
  11. 《UNIX网络编程 卷1:套接字联网API(第3版)》——第2章 传输层:TCP、UDP和SCTP 2.1概述...
  12. OpenCV中对数组(矩阵)的常用操作
  13. JDBC连接数据库:单线程、多线程、批处理插入数据的对比
  14. 第1章—Spring之旅—简化Spring的java开发
  15. JavaScript上传文件,不打断点就上传失败
  16. 无线路由器怎么改密码 修改路由器密码
  17. LU分解 LDL分解 Cholesky分解
  18. 在Azure的云服务器上搭建个人网站
  19. RNA 提取步骤(trizol)
  20. Unity3d资源反编译. AssetBundle格式简析+简单应用+爬坑

热门文章

  1. Git 下拉项目权限配置SSH 密钥
  2. Excel(Office、WPS)一次性删除多个空行
  3. 学习c语言未来的就业方向_语言学习的未来
  4. 聊聊我这不正的「用户观」 ofo退款与最后一公里之死
  5. 凹形长方形的周长计算_凹周长的计算公式
  6. 合众慧微信赚钱手机功能介绍
  7. 公司业务系统与呼叫中心系统的对接方式
  8. waterdrop(1.5.1版本)增加bitmap类型导数的遇到的问题
  9. 华为交换机DHCP配置
  10. Java学习 day 34_HTML