[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 ...
随机推荐
- C# 控件的自定义拖动、改变大小方法
在用VS的窗体设计器时,我们可以发现控件都是可以拖动的,并且还可以调整大小.怎么在自己的程序中可以使用上述功能呢? 下面的方法值得借鉴! using System; using System.Wind ...
- pod install 无限卡顿
pod install 被墙了,请大家换成pod install --verbose --no-repo-update
- 4. 什么是AJAX
术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的“思考时间”同步.Ajax提供与服务器 ...
- Azure VM上传小文件
因为需要传一些脚本到Azure的VM里,有个简单方法可以实现,如下 编辑这个rdp文件 点击确定,连接远程计算机 可以在我的电脑里看到本地硬盘
- LAMP环境搭建
安装前说明: 先安装gcc gcc-c++ make 等 可用yum install -y gcc gcc-c++ make 也可以使用rpm安装不过需要注意依赖 1.安装apache 下载链接:ht ...
- python for MSSQLserver
# -*- coding: utf-8 -*- '''python coded by written in 2016/8/31 Used for get win os log for each win ...
- IE9浏览器中的My97日历控件刷新后无法打开问题解决办法
解决办法如下: 1:找到WdatePicker.js 2:将$crossFrame:true 改为$crossFrame:false. 3:重启服务,刷新页面发现OK.
- c++ 面试注意的问题
1.输入数据合法性检查 2.变量命名 3.边界数据的检查 4.函数名,递归的思想[尤其是树.链表] 企业喜欢的人:聪明 努力 基础好 面试时不要主动请求提示,做题要大胆地想,及时与面试官沟通,防止想很 ...
- SVN批处理
前言 我们在项目开发中,使用的版本管理工具有svn git等.这里介绍一下用 bat命令操作svn .这样会给我们带来很大的方便. bat命令 Python等大家一定要掌握哈,会给你带来很多的方便.其 ...
- 最牛B的编码套路 - 呦呦鹿鸣 - 博客频道 - CSDN.NET
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...