[MVC_Json序列化]Json字符串反序列化成C#对象
上一篇中有Json序列化相关问题得到了解决。
那么结果集为Json串时,如何将Json串转成C#对象呢?
现举例说明:
-现有如下字符串数据
string k = "{\"rings\":["
+"[[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993],"
+ "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993],"
+ "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]]],"
+ "\"spatialReference\":";
-想将上面的数据转换成List<point>
public class point {
public decimal x { get; set; }
public decimal y { get; set; }
}
步骤1:
-截取字符串
public string strCutOut(string str) {
string str1 = str.Substring(str.IndexOf(":[[") + , str.IndexOf("]],") - );
string str2 = str1.Replace("],[", "]$[");
string str3 = str2.Replace("[", "{'x':");
string str4 = str3.Replace("]", "}");
string str5 = str4.Replace(",", ",'y':");
string str6 = str5.Replace("$", ",");
string str7 = str6.Replace("'", "\"");
return str7;
}
-得到如下字符串
"{\"x\":34995.513100000098,\"y\":4304381.4231000002},
{\"x\":34988.120099999942,\"y\":4304371.5420999993},
{\"x\":34995.513100000098,\"y\":4304381.4231000002},
{\"x\":34988.120099999942,\"y\":4304371.5420999993},
{\"x\":34995.513100000098,\"y\":4304381.4231000002},
{\"x\":34988.120099999942,\"y\":4304371.5420999993}"
步骤2:
-引用System.Runtime.Serialization.Json;

-反序列化字符串
public List<point> convertObject(string json)
{
MemoryStream stream2 = new MemoryStream();
DataContractJsonSerializer ser2 = new DataContractJsonSerializer(typeof(List<point>));
StreamWriter wr = new StreamWriter(stream2);
wr.Write(json);
wr.Flush();
stream2.Position = ;
Object obj = ser2.ReadObject(stream2);
List<point> list = (List<point>)obj;
return list;
}
步骤3:
-调用字符串截取及反序列化字符串
public void readJson(){
string k = "{\"rings\":["
+"[[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993],"
+ "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993],"
+ "[34995.513100000098,4304381.4231000002],[34988.120099999942,4304371.5420999993]]],"
+ "\"spatialReference\":";
string str = strCutOut(k);
string json = "[" + str + "]";
List<point> ls = convertObject(json);
}
*得到的结果集ls为:

[MVC_Json序列化]Json字符串反序列化成C#对象的更多相关文章
- C#将Json字符串反序列化成List对象类集合
摘自:http://blog.csdn.net/cdefg198/article/details/7520398 using System.IO; using System.Web.Script.Se ...
- Json.Net 反序列化成匿名对象
反序列化一个object var str1 = "{id:1,name:'111',x:[1,2,3],y:{a:'ssss',b:'dddd'}"; var obj1 = Jso ...
- JSON字符串反序列化成对象_部分属性值反序列化失败
简介:本人在开发webapi接口时遇到了:一个复杂的Json字符串在反序列化为对象时报,无法发序列化其中的一个属性对象? 使用方法: InternalRecommendRequestFormModel ...
- fastjson将json字符串转化成bean对象解析出错的检查方法
我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ...
- js将form表单序列化[json字符串、数组、对象]
1.序列化为字符串 $("#Form").serialize();//name=zhangsan&sex=1&age=20 2.序列化为数组 var formD ...
- js将json字符串转化成json对象的方法
js将json字符串转化成json对象的方法: JSON.parse(jsonObject)
- C# 把对象序列化 JSON 字符串 和把JSON字符串还原为对象
/// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T"> ...
- 将JSON字符串反序列化为指定的.NET对象类型
目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...
- 此类目的是防治序列化Json字符串时的循环引用问题-------最好解决方案
http://james.newtonking.com/json/help/index.html using Newtonsoft.Json;using System;using System.Col ...
随机推荐
- js实现文件上传
js function UpladFile() { var fileObj = document.getElementById("filetes").files[0]; // 获取 ...
- dell r710xd 通过远程管理卡安装系统
机器dell r720xd 服务器 远程管理卡:iDRAC7 安装系统CentOS 5.9 64位 1.首先得配置要管理口IP信息及用户名.密码(这里就不做介绍了) 2.登录远程管理 https:// ...
- WBS功能分解
WBS功能分解表格如下: 功能 子功能 二级子功能 预计花费时间 (小时) 实际花费时间(小时) 地图显示跑道 制作地图 获得开发权限key 1 2 将sdk导入程序 0.5 1 调试程序 1 2 ...
- java线程池ThreadPoolExecutor理解
Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程.newFixe ...
- 机器学习实战4:Adaboost提升:病马实例+非均衡分类问题
Adaboost提升算法是机器学习中很好用的两个算法之一,另一个是SVM支持向量机:机器学习面试中也会经常提问到Adaboost的一些原理:另外本文还介绍了一下非平衡分类问题的解决方案,这个问题在面试 ...
- empty isset
1.当变量未定义时,is_null()和"参数本身"是不允许作为参数判断的,会报Notice警告错误: 2.empty,isset首先都会检查变量是否存在,然后对变量值进行检测.而 ...
- mysql 日志表rename 备份
1. 按照原历史表新增一个新表(空表): mysql> create table history_log_new ...; 2. 给历史表重命名,并将新表重命名为历史表: mysql> R ...
- 题目描述: k一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
时间限制:1秒 空间限制:32768k 斐波那契数列指的是这样一个数列: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,9 ...
- HTML纯javaScript代码写图片轮播
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- PHP之初识PHP(1)
酸菜记 之 初识PHP 这是我从零基础了解PHP开始学习的笔记,共同学习,有不对之处,望指出共同学习. 一.初了解PHP PHP 是超文本预处理语言 php HyperText Preprocesso ...