C#怎么将Json转成能用的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#怎么将Json转成能用的相关的知识,希望对你有一定的参考价值。

var remote_ip_info = "ret":1,"start":"118.112.0.0","end":"118.116.127.255","country":"\u4e2d\u56fd","province":"\u56db\u5ddd","city":"\u6210\u90fd","district":"","isp":"\u7535\u4fe1","type":"","desc":"";
怎样将这段json字符串转成能用的

  方法如下:
  using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;
using System.Data;

/// <summary>
/// JSON帮助类
/// </summary>
publicclassJSONHelper

/// <summary>
/// 对象转JSON
/// </summary>
/// <param name="obj">对象</param>
/// <returns>JSON格式的字符串</returns>
publicstaticstringObjectToJSON(object obj)

javascriptSerializer jss =newJavaScriptSerializer();
try

return jss.Serialize(obj);

catch(Exception ex)


thrownewException("JSONHelper.ObjectToJSON(): "+ ex.Message);



/// <summary>
/// 数据表转键值对集合 www.2cto.com
/// 把DataTable转成 List集合, 存每一行
/// 集合中放的是键值对字典,存每一列
/// </summary>
/// <param name="dt">数据表</param>
/// <returns>哈希表数组</returns>
publicstaticList<Dictionary<string,object>>DataTableToList(DataTable dt)

List<Dictionary<string,object>> list
=newList<Dictionary<string,object>>();

foreach(DataRow dr in dt.Rows)

Dictionary<string,object> dic =newDictionary<string,object>();
foreach(DataColumn dc in dt.Columns)

dic.Add(dc.ColumnName, dr[dc.ColumnName]);

list.Add(dic);

return list;


/// <summary>
/// 数据集转键值对数组字典
/// </summary>
/// <param name="dataSet">数据集</param>
/// <returns>键值对数组字典</returns>
publicstaticDictionary<string,List<Dictionary<string,object>>>DataSetToDic(DataSet ds)

Dictionary<string,List<Dictionary<string,object>>> result =newDictionary<string,List<Dictionary<string,object>>>();

foreach(DataTable dt in ds.Tables)
result.Add(dt.TableName,DataTableToList(dt));

return result;


/// <summary>
/// 数据表转JSON
/// </summary>
/// <param name="dataTable">数据表</param>
/// <returns>JSON字符串</returns>
publicstaticstringDataTableToJSON(DataTable dt)

returnObjectToJSON(DataTableToList(dt));


/// <summary>
/// JSON文本转对象,泛型方法
/// </summary>
/// <typeparam name="T">类型</typeparam>
/// <param name="jsonText">JSON文本</param>
/// <returns>指定类型的对象</returns>
publicstatic T JSONToObject<T>(string jsonText)

JavaScriptSerializer jss =newJavaScriptSerializer();
try

return jss.Deserialize<T>(jsonText);

catch(Exception ex)

thrownewException("JSONHelper.JSONToObject(): "+ ex.Message);



/// <summary>
/// 将JSON文本转换为数据表数据
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>数据表字典</returns>
publicstaticDictionary<string,List<Dictionary<string,object>>>TablesDataFromJSON(string jsonText)

returnJSONToObject<Dictionary<string,List<Dictionary<string,object>>>>(jsonText);


/// <summary>
/// 将JSON文本转换成数据行
/// </summary>
/// <param name="jsonText">JSON文本</param>
/// <returns>数据行的字典</returns>
publicstaticDictionary<string,object>DataRowFromJSON(string jsonText)

returnJSONToObject<Dictionary<string,object>>(jsonText);

参考技术A //装个FastJson库就可以这样
string s = "\\"Name\\":\\"aaaaaa\\",\\"Age\\":10,\\"dob\\":\\"2000-01-01 00:00:00Z\\",\\"inner\\":\\"prop\\":30";
dynamic d = fastJSON.JSON.Instance.ToDynamic(s);
var ss = d.Name;
var oo = d.Age;
var dob = d.dob;
var inp = d.inner.prop;


    不过个人认为json作为交换格式,不应该在js以外的其他语言作为直接内存形式使用。

应该从字符串中获得指定的数据,而不是整个对象映射。

追问

重点是他前面有 var remote_ip_info =

怎样把接口接收到的这个值给去掉。然后将后面的正常转成json

追答

用正则取 var\s+remote_ip_info\s+=(.*?);

这时组1的值就是的内容。

本回答被提问者采纳
参考技术B 前台还是后台

以上是关于C#怎么将Json转成能用的的主要内容,如果未能解决你的问题,请参考以下文章

我用的是arcgis10英文版 要把3个面转成栅格进行加权叠加,其中一个没有任何问题的转好了,另外两个就不行

用C#语言将json格式数据转成json对象

c# 读取json的问题,JObject不能强转成JArray

Parse 转换 将括号里面的转成Parse前面的类型

Parse 转换 将括号里面的转成Parse前面的类型

c#如何把Json转成DataTable每一行都一一对应下面多出来的列自动添加到后方