文档章节

WP开发:使用JSON格式传输应用数据

osc首席说得对但实现不了
 osc首席说得对但实现不了
发布于 2014/04/23 11:13
字数 456
阅读 147
收藏 0

JSON的轻便小巧是不用多说的,自已在一个WP应用中尝试使用C#解析JSON格式时遇见了一个小问题,记录一下吧。

这个应用使用的是PHP后台,使用json_encode()输出后,通过WP应用接收,这里不说怎么接收的了,WebClient和HttpWebRequest都可以,下面给出我从字符串中解析出Object的方法。

引入System.Runtime.Serialization.Json库

public static T Deserialize<T>(string jsonString)
{
    using (MemoryStream ms = new MemoryStream(Encoding.Unicode.GetBytes(jsonString)))
    {
        DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
        return (T)serializer.ReadObject(ms);
    }
}

这个方法是没有问题的,网上搜到大多也是这个答案。

使用:

比如这里要解析下面的JSON字符串

<?php
echo json_encode(array(
                    'name'=>'小明',
                    'age'=>16
                    ));

JSON输出字符串:[{"name":"小明","age":16}]

先要在WP应用里定义一个类

public class UserInfo
{
    public string name { get; set; }
    public int age { get; set; }
}

然后接收到字符串str的地方

UserInfo user = Deserialize<UserInfo>(str);

这里一般也应该没什么问题,但我的问题就出现在了这里,取得的user总是为null,或者报错。于是就查找各方面的资料,历尽千辛万苦,下面就给大家分亨。原因就是JSON在传输中中文转换成了Unicode字符,所以导致不能正常解析

string json = Regex.Unescape(str);
UserInfo user = Deserialize<UserInfo>(json);

问题解决。

这是前段时间遇到的问题了,问题虽然小,碰上了也是很郁闷的,其中更细节的地方也记不太清楚,看客们将就着点,能解决你的问题也是极好的~


© 著作权归作者所有

共有 人打赏支持
osc首席说得对但实现不了
粉丝 11
博文 31
码字总数 9713
作品 0
深圳
高级程序员
私信 提问
JSONP让JavaScript也可以调用API

API接口的数据格式都是标准的JSON格式,这样方便数据操作。 JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)。 所以其 实JSON期初是为了方便JavaScript操作而定义的一种数...

tngou
2014/01/15
0
0
当 Windows Azure 碰到了 Windows Phone 7:推送通知服务概述

本文将介绍 Windows Phone 7 上的一个新功能-Push Notification Service,一个由应用程序供货商与手机用户进行沟通的管道,服务应用程序可以利用这个功能将讯息广播给所有订阅此服务的手机使...

junwong
2012/02/27
782
0
Json那点事儿

1.JSON介绍 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,JSON以key-value的形式提供了很好的读写,在web开发中之前用过xml来进行数据的交互和传输, 但xml的数据结构比较复...

陈小扁
2016/04/10
108
1
基于ASP.NET 3.5 Web Service 的JSON扩展应用

如果你经常使用ASP.NET Web服务,那么你便知道他们可以以不同的方法进行通信。可以使用SOAP 1.1/1.2,HTTP POST和HTTP GET的一些支持的协议调用ASP.NET Web服务。我们可以通过HTTP POST或GET...

高阳
2018/06/26
0
0
xml与json

1.定义介绍 (1).XML定义 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进...

ok绷forever
2016/07/21
14
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Cloud搭建微服务架构----流量回放

前言 系统微服务化后,传统的自测/测试方式都变得比较困难: 依赖的服务可能不稳定。 服务无法提供期望的响应数据。 缺少场景构造标准。 随着整体业务越来越复杂,微服务依赖的越来越多,测试...

春哥大魔王的博客
28分钟前
3
0
记一次springboot模块配置问题导致读取Apollo配置中心配置文件始终错误的问题

现在正在做的一个项目采用的是微服务,主框架是spring cloud,配置中心用的是携程的Apollo。 项目下有多个服务,在测试服务器上启动用户服务的时候发现在eureka中心另一个服务被启动了,尝试...

zcqshine
29分钟前
6
0
流处理和批处理框架的异同

分布式流处理需求日益增加,包括支付交易、社交网络、物联网(IOT)、系统监控等。业界对流处理已经有几种适用的框架来解决,下面我们来比较各流处理框架的相同点以及区别。 分布式流处理是对...

hblt-j
33分钟前
4
0
spring cloud 面试题

什么是springboot 用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件) 创建独立的spring引用程序 main方法运行 嵌入的Tomcat 无需部署war文件 简化...

狼王黄师傅
34分钟前
4
0
前嗅ForeSpider教程:采集黄页88

以黄页88为例,采集当前列表页新闻的正文数据: 第一步:新建任务 ①点击左上角“加号”新建任务,如图1: 【图1】 ②在弹窗里填写采集地址,任务名称,如图2: 【图2】 ③点击下一步,选择进...

forespider
39分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部