一般,取到json数据之后,都会将json数据转换为对象,通过属性取得里面的属性值,这样做可以很好地利用vs的智能提示,让开发更轻松,但是代价就是,你需要手动的创建json数据相对应的类。

也有其他方法可以很方便的取到数据:

1.利用正则表达式提取,代码如下:

 public static int GetIntProperty(string key, string json)
{
var code = 0;
var regex = new Regex(String.Format("\"{0}\":(?<value>-?\\d+)", key), RegexOptions.IgnoreCase); var match = regex.Match(json);
if (match.Success)
{
var codeValue = match.Groups["value"].Value; int.TryParse(codeValue, out code); return code;
} return 0;
} public static string GetStringProperty(string key, string json)
{ var regex = new Regex(String.Format("\"{0}\":\"(?<value>.+?)\"", key), RegexOptions.IgnoreCase); var match = regex.Match(json);
if (match.Success)
{
return match.Groups["value"].Value;
} return String.Empty;
} public static string Serialize(object obj)
{
var jser = new JavaScriptSerializer();
var json = jser.Serialize(obj); json = Regex.Replace(json, @"\\/Date\((\d+)\)\\/", match =>
{
DateTime dt = new DateTime(1970, 1, 1);
dt = dt.AddMilliseconds(long.Parse(match.Groups[1].Value));
dt = dt.ToLocalTime();
return dt.ToString("yyyy-MM-dd HH:mm:ss");
}); return json;
}

一共三个方法,第一个是取json里面的int类型的值,当然稍微改造下的也可以取得bool类型的。。。

第二个放大取得string类型的值,

打三个方法,主要是为了解决json数据中日期类型的数据显示异常的问题。

2.利用Newtonsoft.Json把json对象转换成dynamic对象

public void GetPropertyValue(string jsonStr)
{
dynamic stocks = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonStr);
code = stock.name;
symbol = stock.age;
name = stock.gender;
}

上面只是演示,json字符串对应的是一个有code,symbol,stock三个属性的类

利用这个方法可以很方便的取值,但是要求你知道json的结构

好了,这就是今天的分享。

不创建类将json数据转换的更多相关文章

  1. 【转】C#中将JSon数据转换成实体类,将实体类转换成Json

    http://wo13145219.iteye.com/blog/2022667 http://json2csharp.chahuo.com/ using System; using System.C ...

  2. ASP.NET实现二维码 ASP.Net上传文件 SQL基础语法 C# 动态创建数据库三(MySQL) Net Core 实现谷歌翻译ApI 免费版 C#发布和调试WebService ajax调用WebService实现数据库操作 C# 实体类转json数据过滤掉字段为null的字段

    ASP.NET实现二维码 using System;using System.Collections.Generic;using System.Drawing;using System.Linq;us ...

  3. 淘淘相关工具类【json,httpClient,id,FTP,exception,cookie(包括共享cookie的设置等)】

    json package com.taotao.common.utils; import java.util.List; import com.fasterxml.jackson.core.JsonP ...

  4. Swift微博项目--Swift中通过类名字符串创建类以及动态加载控制器的实现

    Swift中用类名字符串创建类(用到了命名空间) OC中可以直接通过类名的字符串转换成对应的类来操作,但是Swift中必须用到命名空间,也就是说Swift中通过字符串获取类的方式为NSClassFro ...

  5. 实体类转Json的2种方法

    首先申明所需jar包: ezmorph-1.0.6.jar jackson-all-1.7.6.jar jsoup-1.5.2.jar 一.创建一个实体类Emp. package com.hyx.en ...

  6. javaScript【创建对象、创建类、成员变量、方法、公有和私有、静态】

    创建对象 方式① 直接使用new Object() var obj = new Object(); 方式② 使用空的{}大括号 var obj2 = {}; 测试 增加属性,访问属性 我们要为创建的对 ...

  7. C#工具类:Json操作帮助类(转载)

    原文转载自C#工具类:Json操作帮助类_IT技术小趣屋. Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来 ...

  8. 【转载】C#工具类:Json操作帮助类

    Json序列化和反序列化在程序开发中时常会遇到,在C#中可以使用很多种方法实现对数据的Json序列化和反序列化,封装一个Json操作工具类来简化相应的操作,该工具类中包含以下功能:对象转JSON.数据 ...

  9. 实体类和json互相转换

    /// <summary> /// 将实体类转换为json数据 /// </summary> /// <returns></returns> publi ...

随机推荐

  1. 邂逅python

    你很美 幸运遇见你 很幸运,能在现在这么多繁杂的语言中选择python.初识python是在2016年的七月.大二学期刚刚结束,留在学校准备学点东西.刚好听同学说下学期要学习python,所以决定要学 ...

  2. MyBatis 学习-动态 SQL 篇

    MyBatis 为我们提供了如下几个动态 SQL 元素: if choose foreach where/set trim 一.IF 元素 <select id="selectProj ...

  3. javascript variables 变量

    一,调试方法: 1.document.write();       直接在网页中显示. 2.alert();                       弹窗显示. 3.console.       ...

  4. Redis 的几种数据结构&五种数据类型对象

    先看几种数据结构 通过分析底层的数据结构,学习如何根据场景选型和设计 1,简单动态字符串 redis使用的字符串SDS有别于C语言中的字符串 a, 结构 free字段为已分配但未使用的空间 len为已 ...

  5. private set

    表示只读: 例:public string DisplayName { get; private set; }  称为"自动属性" 等同于: private string _Dis ...

  6. python hmac-sha1

    def getSignature(Token,paramss1): s = getParam(paramss1) print(s) # for k, v in paramss1.items(): # ...

  7. chrome console 命令简记

    1.快速迭代元素 $$('tr.dispute-num td strong a').map(function (el) { return el.innerHTML; }) 2.复选框选中/取消选中 c ...

  8. Java集合初体验

    背景:        因为对Java的集合完全不了解,所以才在网上找了找能形成初步印象的文章进行学习,大多涉及的是一些概念和基础知识. 一.数组array和集合的区别: (1)数组是大小固定的,并且同 ...

  9. leaflet地图库

    an open-source JavaScript libraryfor mobile-friendly interactive maps Overview Tutorials Docs Downlo ...

  10. FD.io VPP 技术Neutron VNF vRouter 实现

    在OpenStack Neutron中主要有三种网络设备,路由器(Router),负载均衡器(LB)以及VPN,其中Router作为基础网络设备起到连接子网到子网.内网到外网的作用.不同子网之间的访问 ...