[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 ...
随机推荐
- handler发消息的形式
1.onCreate()中写好handler的接受机制,准备接受并处理消息 2.thread中利用handler.post(Runnable r): protected void onCreate(B ...
- touches
e.touches.length//有多少个手指接触头
- zzuli-小火山的跳子游戏
Description 小火山和火山火山在一块玩跳子游戏.规则如下: 1:跳子的起始位置为0,棋盘大小从1到N 2:每次跳子跳k步. 例如当前位置为i, 那么下一步为i + k 3:跳 ...
- 懒人邮件群发日发50-100万封不打码不换IP不需发件箱大站协议系统营销软件100%进收件箱
用一种新的技术思维去群发邮件 一种不用换IP,不需要任何发件箱的邮件群发方式 一种不需要验证码,不需要**代码变量的邮件群发方式 即使需要验证码也能全自动识别验证码的超级智能软件 教你最核心的邮件群发 ...
- Windows编程入门程序详解
引用:http://blog.csdn.net/jarvischu/article/details/8115390 1. 程序 /******************************* ...
- Android ps命令执行后的各项参数含义
直接输入ps后可以看到如下信息: # ps ps USER PID PPID VSIZE RSS WCHAN PC NAME root 1 ...
- 实体框架高级应用之动态过滤 EntityFramework DynamicFilters
实体框架高级应用之动态过滤 EntityFramework DynamicFilters 我们开门见山,直奔主题. 一.EntityFramework DynamicFilters 是什么,它能做什么 ...
- rdesktop共享剪贴板的问题
使用-r clipboard:PRIMARYCLIPBOARD参数来共享剪贴板,连接到window7 但有时就不好用了,剪贴板没有同步 找到一些相关的资料 https://bugs.launchpad ...
- CEGUI0.8.4例子
#define GLUT_DISABLE_ATEXIT_HACK#pragma comment(lib,"glew32.lib")#include<stdlib.h># ...
- Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门
各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...