[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 ...
随机推荐
- android 使用shape来优化界面效果
看下效果图: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android=&quo ...
- 用花生壳实现内网映射,决解无域名、无公网IP、无服务器空间问题
无域名.无公网IP.无服务器空间用花生壳提供的免费内网映射吧.你的PC就是服务器,花生壳提供的自定义二级域名轻松访问你的个人网站. 1.首先你得注册哦,然后申请免费的域名(2个) 2.设置路由器,下面 ...
- Windows Phone 八、文件读写IO
文件存储的类型 •本地应用文件: •ApplicationData.Current.LocalFolder: •漫游应用文件: •ApplicationData.Current.RoamingFold ...
- JavaSE基础第一篇
1.JDK的安装: 包括JRE 和JVM 下载地址: www.oracle.com/www.sun.com 2.环境变量 set path = "bin所在路径" 设置pa ...
- centos查看实时网络带宽占用情况方法
Linux中查看网卡流量工具有iptraf.iftop以及nethogs等,iftop可以用来监控网卡的实时流量(可以指定网段).反向解析IP.显示端口信息等. centos安装iftop的命令如下: ...
- 关于mybatis的理解
http://blog.csdn.net/jiuqiyuliang/article/details/45132493 写的不错很好!
- JAVA基本类库介绍
我们曾经讲过,Java已经为编程者编制了许多类,这些类已经经过测试,基本上不存在错误,这些类都是我们编程的基础.如果不利用这些已存在的类,我们的 编程工作将变得异常复杂,所以我们应尽可能多的掌握Jav ...
- mysql 增删改查最基本用法小结
目录: 1.新建数据库 2.新建数据表 3.查看表结构 4.增删改查 建立一个数据库students 建立一块数据表class1 内容包括: id 主键 自动编号 无符号位 SMALLINT类型 na ...
- matlab GUI界面编程总结
去年做了一些关于Matlab GUI的程序,现在又要做相关的东西,回想起来,当时很多经验没有记录下来,现在回顾起来始终觉得不爽,所以从现在开始,一定要勤写记录. 从简单的例子说起吧. 创建Matlab ...
- 今天无意发现jquery的一个以前的误导
本文提供即刻提升你的脚本性能的十个步骤.不用担心,这并不是什么高深的技巧.人人皆可运用!这些技巧包括: 使用最新版本 合并.最小化脚本 用for替代each 用ID替代class选择器 给选择器指定前 ...