上一篇中有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#对象的更多相关文章

  1. C#将Json字符串反序列化成List对象类集合

    摘自:http://blog.csdn.net/cdefg198/article/details/7520398 using System.IO; using System.Web.Script.Se ...

  2. Json.Net 反序列化成匿名对象

    反序列化一个object var str1 = "{id:1,name:'111',x:[1,2,3],y:{a:'ssss',b:'dddd'}"; var obj1 = Jso ...

  3. JSON字符串反序列化成对象_部分属性值反序列化失败

    简介:本人在开发webapi接口时遇到了:一个复杂的Json字符串在反序列化为对象时报,无法发序列化其中的一个属性对象? 使用方法: InternalRecommendRequestFormModel ...

  4. fastjson将json字符串转化成bean对象解析出错的检查方法

    我的情况是:解析第一层数据成功,解析第二层嵌套的数据失败.如: { "response": { "resultcode": "0", &qu ...

  5. js将form表单序列化[json字符串、数组、对象]

    1.序列化为字符串 $("#Form").serialize();//name=zhangsan&sex=1&age=20   2.序列化为数组 var formD ...

  6. js将json字符串转化成json对象的方法

    js将json字符串转化成json对象的方法: JSON.parse(jsonObject)

  7. C# 把对象序列化 JSON 字符串 和把JSON字符串还原为对象

    /// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T"> ...

  8. 将JSON字符串反序列化为指定的.NET对象类型

    目录导航: 前言: 方法一.在项目中定义对应的对象参数模型,用于映射反序列化出来的参数(复杂JSON字符串数据推荐使用): 方法二.直接将JSON字符串格式数据反序列化转化为字典数据(简单JSON字符 ...

  9. 此类目的是防治序列化Json字符串时的循环引用问题-------最好解决方案

    http://james.newtonking.com/json/help/index.html using Newtonsoft.Json;using System;using System.Col ...

随机推荐

  1. handler发消息的形式

    1.onCreate()中写好handler的接受机制,准备接受并处理消息 2.thread中利用handler.post(Runnable r): protected void onCreate(B ...

  2. touches

    e.touches.length//有多少个手指接触头

  3. zzuli-小火山的跳子游戏

    Description   小火山和火山火山在一块玩跳子游戏.规则如下:   1:跳子的起始位置为0,棋盘大小从1到N   2:每次跳子跳k步. 例如当前位置为i, 那么下一步为i + k   3:跳 ...

  4. 懒人邮件群发日发50-100万封不打码不换IP不需发件箱大站协议系统营销软件100%进收件箱

    用一种新的技术思维去群发邮件 一种不用换IP,不需要任何发件箱的邮件群发方式 一种不需要验证码,不需要**代码变量的邮件群发方式 即使需要验证码也能全自动识别验证码的超级智能软件 教你最核心的邮件群发 ...

  5. Windows编程入门程序详解

    引用:http://blog.csdn.net/jarvischu/article/details/8115390 1.     程序 /******************************* ...

  6. Android ps命令执行后的各项参数含义

    直接输入ps后可以看到如下信息: # ps ps USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAME root      1    ...

  7. 实体框架高级应用之动态过滤 EntityFramework DynamicFilters

    实体框架高级应用之动态过滤 EntityFramework DynamicFilters 我们开门见山,直奔主题. 一.EntityFramework DynamicFilters 是什么,它能做什么 ...

  8. rdesktop共享剪贴板的问题

    使用-r clipboard:PRIMARYCLIPBOARD参数来共享剪贴板,连接到window7 但有时就不好用了,剪贴板没有同步 找到一些相关的资料 https://bugs.launchpad ...

  9. CEGUI0.8.4例子

    #define GLUT_DISABLE_ATEXIT_HACK#pragma comment(lib,"glew32.lib")#include<stdlib.h># ...

  10. Window Azure ServiceBus Messaging消息队列技术系列2-编程SDK入门

    各位,上一篇基本概念和架构中,我们介绍了Window Azure ServiceBus的消息队列技术的概览.接下来,我们进入编程模式和详细功能介绍模式,一点一点把ServiceBus技术研究出来. 本 ...