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的值就是的内容。
以上是关于C#怎么将Json转成能用的的主要内容,如果未能解决你的问题,请参考以下文章
我用的是arcgis10英文版 要把3个面转成栅格进行加权叠加,其中一个没有任何问题的转好了,另外两个就不行