C#處理Json的另外一種方式成功實(shí)踐
更新時(shí)間:2013年01月25日 15:18:03 作者:
通過C#調(diào)用js,用Js解析Json,并將返回值轉(zhuǎn)換為C#數(shù)組,這種思路相信你沒有用過吧,試試也無妨啊,感興趣的你可千萬不要走開啊
作者在原文中說明了通過C#調(diào)用Javascript來解析Json字符串的方法。代碼如下:
using Microsoft.JScript;
using Microsoft.Vsa;
using Microsoft.JScript.Vsa;
public static Dictionary<string, string> GetMyValue(string jsonSource, string key1, string key2)
{
Dictionary<string, string> dic = new Dictionary<string, string>();
string jsonStr = "function handleJson() {var j=" + jsonSource + ";var arr1=new Array();var arr2=new Array();for(var " + key2 + " in j." + key1 + ") arr1.push(" + key2 + "); return arr1;} handleJson(); ";
object o = Eval.JScriptEvaluate(jsonStr, VsaEngine.CreateEngine());
ArrayObject arr = (ArrayObject)o;
for (var i = 0; i <= (int)arr.length - 1; i++)
{
dic.Add(arr[i].ToString(), arr[i].ToString());
}
return dic;
}
大致就是這個(gè)樣子,通過C#調(diào)用js,用Js解析Json,并將返回值轉(zhuǎn)換為C#數(shù)組。
復(fù)制代碼 代碼如下:
using Microsoft.JScript;
using Microsoft.Vsa;
using Microsoft.JScript.Vsa;
public static Dictionary<string, string> GetMyValue(string jsonSource, string key1, string key2)
{
Dictionary<string, string> dic = new Dictionary<string, string>();
string jsonStr = "function handleJson() {var j=" + jsonSource + ";var arr1=new Array();var arr2=new Array();for(var " + key2 + " in j." + key1 + ") arr1.push(" + key2 + "); return arr1;} handleJson(); ";
object o = Eval.JScriptEvaluate(jsonStr, VsaEngine.CreateEngine());
ArrayObject arr = (ArrayObject)o;
for (var i = 0; i <= (int)arr.length - 1; i++)
{
dic.Add(arr[i].ToString(), arr[i].ToString());
}
return dic;
}
大致就是這個(gè)樣子,通過C#調(diào)用js,用Js解析Json,并將返回值轉(zhuǎn)換為C#數(shù)組。
您可能感興趣的文章:
- c#版json數(shù)據(jù)解析示例分享
- C#解析json文件的實(shí)現(xiàn)代碼
- asp.net(C#)解析Json的類代碼
- c#操作json示例分享
- c#處理3種json數(shù)據(jù)的實(shí)例
- C#實(shí)現(xiàn)json的序列化和反序列化實(shí)例代碼
- C#實(shí)現(xiàn)簡單的JSON序列化功能代碼實(shí)例
- C#實(shí)現(xiàn)任意數(shù)據(jù)類型轉(zhuǎn)成json格式輸出
- 自定義實(shí)現(xiàn)Json字符串向C#對象轉(zhuǎn)變的方法
- C#簡單快速的json組件fastJSON使用介紹
- C#解析JSON實(shí)例
相關(guān)文章
c# Random快速連續(xù)產(chǎn)生相同隨機(jī)數(shù)的解決方案
在寫數(shù)獨(dú)基類的時(shí)候?yàn)榱水a(chǎn)生隨機(jī)數(shù)的時(shí)候遇到奇怪的問題2009-03-03使用Visual Studio 2017作為Linux C++開發(fā)工具
這篇文章主要為大家詳細(xì)介紹了使用Visual Studio 2017作為Linux C++開發(fā)工具的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-03-03Asp.net TextBox的TextChanged事件使用介紹
動態(tài)創(chuàng)建的控件是如何加載視圖狀態(tài),還提到ProcessPostData方法的調(diào)用,這里我就用TextBox的TextChanged事件來說說視圖數(shù)據(jù)的加載以及事件的觸發(fā)2012-12-12.NET數(shù)組使用中的注意事項(xiàng)小結(jié)
這篇文章主要介紹了.NET數(shù)組使用中的注意事項(xiàng),總結(jié)了常見的三個(gè)數(shù)組使用中的注意事項(xiàng),對于.NET初學(xué)者有一定的參考借鑒價(jià)值,需要的朋友可以參考下2014-12-12[Asp.Net Core]用Blazor Server Side實(shí)現(xiàn)圖片驗(yàn)證碼
這篇文章主要介紹了如何用Blazor Server Side實(shí)現(xiàn)圖片驗(yàn)證碼,文中講解非常詳細(xì),代碼幫助大家更好理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07一步一步學(xué)asp.net Ajax登錄設(shè)計(jì)實(shí)現(xiàn)解析
做一個(gè)登錄,擁有自動記住賬號和密碼的功能,要保證安全性,ajax,無刷新,良好的用戶體驗(yàn).(母板頁)2012-05-05