如果后台是一个JSON的字符串格式如下:

string str = "{\"Success\":true,\"Msg\":\"成功!\"}";

我们之间转成dynamic然后获取里面某个属性即可。

dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(str);

string a = response.Success; string b = response.Msg;

还有两种较为复杂的方法:

 Data data1 = JsonConvert.DeserializeObject<Data>(str);获取就直接:data1.Success。

或者:List<Data> list = JsonConvert.DeserializeObject<List<Data>>(str);获取需要循环获取:foreach (var item in list)
            {
                 item.Success
            }

但是以上2个方法都需要声明类

public class Data
    {
        public string Success { get; set; }
        public string Msg { get; set; }
    }

 

 

 

如果后台穿过来是一个Json(new { success = response.Success, msg = response.Msg }, JsonRequestBehavior.AllowGet);格式;直接转成dynamic 格式。获取: resulOb.Data.success。

 

--------------题外话

其实也可以用这种方式直接传给前台:

public JsonResult projectPush(){

Json(new { success = false, msg = "成功!" }, JsonRequestBehavior.AllowGet);

}

前台获取的时候直接:var result = Ext.decode(repsonse.responseText);result.success即可。当然这个是基于EXT的。你可以返回之后调适一下其他框架下的。

--------------------------------------------------------------------------------------------------------     分割线    ------------------------------------------------------------------------------------------------------------------------------------------

Newtonsoft.Json在json和对象之间转化是一个非常强大的工具。

对象转化json字符串

Newtonsoft.Json.JsonConvert.SerializeObject()

json字符串转化为指定对象

 Newtonsoft.Json.JsonConvert.DeserializeObject<>()

json字符串直接获取指定元素值(类似XML)

var jObject=JObject.Parse(jsonstring);
var time= jObject["time"].ToString();//获取time{"time":"2016-06-06 11:11:11"}

 xml转换json字符串

XmlDocument doc = new XmlDocument();
doc.LoadXml(PostBackXml);
var jObject = Newtonsoft.Json.JsonConvert.SerializeXmlNode(doc);//Xml转json

 当上面的XML在序列化是通常会出现根目录,根目录内出现的才是需要序列化的对象元素。

不妨先转换为JObject,像下面这样使用jobj["MongoTask"]转换

 var json=JsonConvert.SerializeXmlNode(item);
var jobj = JsonConvert.DeserializeObject<JObject>(json);
tasklist.Add(jobj["MongoTask"].ToObject<MongoTask>());

 如果需要获取XML中属性的值,比如获取<user name='张三'>获取张三时name属相带有@符号

代码中过滤到@符号就可以正常取值

var jobj = Newtonsoft.Json.JsonConvert.DeserializeObject<JObject>(jObject.Replace("@",""));
var name= jobj["Response"]["Body"]["OrderResponse"]["name"];

 

小结:

1:直接解析字符串
var jObject=JObject.Parse(jsonstring);
var time= jObject["time"].ToString();//获取time{"time":"2016-06-06 11:11:11"}


2:通过转成dynamic然后获取里面某个属性即可。

dynamic response = Newtonsoft.Json.JsonConvert.DeserializeObject(str);

string a = response.Success; string b = response.Msg;

3:先构造一个对象,再将json字符串转型为对象,获取它的属性
================================================================================

1)使用JObject读写字符串:

JObject jo = JObject.Parse(jsonText);
string[] values = jo.Properties().Select(item => item.Value.ToString()).ToArray();

(2)使用JsonSerializer读写对象(基于JsonWriter与JsonReader):

数组型数据

string jsonArrayText1 = "[{'a':'a1','b':'b1'},{'a':'a2','b':'b2'}]";
JArray ja = (JArray)JsonConvert.DeserializeObject(jsonArrayText1);
string ja1a = ja[1]["a"].ToString();
//或者
JObject o = (JObject)ja[1];
string oa = o["a"].ToString();

嵌套格式

string jsonText = "{\"beijing\":{\"zone\":\"海淀\",\"zone_en\":\"haidian\"}}";
JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText);
string zone = jo["beijing"]["zone"].ToString();
string zone_en = jo["beijing"]["zone_en"].ToString();

C# 后台解析json,简单方法 字符串序列化为对象,取值的更多相关文章

  1. repr方法字符串输出实例对象的值

    #coding=utf-8 #repr方法字符串输出实例对象的值 class CountFromBy(object): def __init__(self, val=0, incr=1): self. ...

  2. 如何解析json格式的字符串

    package com.json; import java.util.ArrayList; import java.util.HashMap; import java.util.List; impor ...

  3. Json序列化为对象方法

    /// <summary>/// json 序列化为对象/// </summary>/// <typeparam name="T">对象类型&l ...

  4. JSon_零基础_006_将JSon格式的字符串转换为Java对象

    需求: 将JSon格式的字符串转换为Java对象. 应用此技术从一个json对象字符串格式中得到一个java对应的对象. JSONObject是一个“name.values”集合, 通过get(key ...

  5. spring mvc接收ajax提交的JSON数据,并反序列化为对象

    需求:spring mvc接收ajax提交的JSON数据,并反序列化为对象,代码如下: 前台JS代码: //属性要与带转化的对象属性对应 var param={name:'语文',price:16}; ...

  6. Java序列化对象为字符串并将字符串反序列化为对象

    对象的序列化与反序列化其实就是将对象的状态保存下来,一般是保存到文件中,但是其实更常用的是将对象序列化为字符串保存到数据库中,然后在需要读取对象的情况下将字符串反序列化为对象.   可以序列化的类必须 ...

  7. vbs 解析 json jsonp 方法

    昨天说了下用 htmlfile 来解析 html,今天依然用他来解析,htmlfile 是一个 COM 版的 BOM 和 DOM,所以解析 html, 执行 js 完全不在话下,今天就继续解析 jso ...

  8. Java创建和解析Json数据方法(五)——Google Gson包的使用

    (五)Google Gson包的使用 1.简介 Gson包中,使用最多的是Gson类的toJson()和fromJson()方法:         ①toJson():将java对象转化为json数据 ...

  9. Java创建和解析Json数据方法(二)——org.json包的使用

    (二)org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...

随机推荐

  1. css左右布局,左侧固定,右侧自适应

    实现布局的几种方法,见代码: <!DOCTYPE html> <html lang="cn"> <head> <meta charset= ...

  2. 12个值得关注的顶级可视化JS库 涉及图表、动画、时间处理,表格操作

    本文是译文,原文是https://da-14.com/blog/top-11...我在原文的基础上加了百度的Echats图表库,这个也是毫不逊色其他图表库的.另外Handsontable电子表格库也是 ...

  3. Hive0.13.1介绍及安装部署

    一.简介 hive由Facebook开源用于解决海量结构化日志的数据统计.hive是基于Hadoop的一个数据仓库工具,是基于Hadoop之上的,文件是存储在HDFS上的,底层运行的是MR程序.hiv ...

  4. ActiveMQ安装及使用

    1 安装环境 1.需要jdk2.安装Linux系统.生产环境都是Linux系统. 2 安装步骤 第一步: 把ActiveMQ 的压缩包上传到Linux系统.第二步:解压缩. 第三步:关闭防火墙 临时关 ...

  5. 字符编码的来源,ascii、unicode和utf-8编码的关系

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  6. js--常量,变量

    常量 内存中的一个的固定的地址,其中的数值也是固定的 变量 内存的一个地址,其中的内容有我们更改维护 值类型与引用类型 改变值类型的变量时,影响值的变量 全大写的名称一般为常量 var a = 1 v ...

  7. git 学习之分支

    在一开始学习 git 的时候我们经常提到一个东西---- master.那么 master 到底是什么呢?其实它就是一个分支,一般这个分支就是主分支.而在一般 git 中都有一个指向当前你工作的分支 ...

  8. Oracle 创建表空间和用户

    创建用户: 建立表空间和用户的步骤: 用户 建立:create user 用户名 identified by "密码"; 授权:grant create session to 用户 ...

  9. JMS、AMQP和MQTT主要特性

    今天无意中看到mq的原理,才发现activeMq与ribbMq的原理是不一样的.前者是JMS的实现,后者是AMQP的实现... 原理简介:https://www.cnblogs.com/zhangyu ...

  10. InnoDB索引概述,二分查找法,平衡二叉树

    索引是应用程序设计和开发的一个重要方面.如果索引太多,应用的性能可能会受到影响:如果索引太少,对查询性能又会产生影响.要找到一个合适的平衡点,这对应用的性能至关重要. 如果知道数据的使用,从一开始就应 ...