{
"room": {
"GJAerialView": "產業園基地",
"L02Room": "顯示幕組裝車間",
"MRoom": "MI車間",
"SMTRoom": "SMT車間",
"SL03Room": "多功能產品組裝車間",
"unknown": "未配置的車間"
},
"room1": {
"GJAerialView1": "產業園基地1",
"L02Room1": "顯示幕組裝車間1"
}........
}
json檔案 片段如上
我們如何通過傳入到后臺的key(如提供第一個引數 room.GJAerialView 則程式回傳 “產業園基地”,room1. L02Room1 回傳 "顯示幕組裝車間1")
記住 不用遞回
uj5u.com熱心網友回復:
在線等,遞回的已經實作了,
第一個方法片段代碼如下 (length 是傳入key根據 ‘.’來分割的陣列的長度)
for (int i = 0; i < length; i++)
{
//如果是第一層 ,那么根據頂級key獲取上面讀取出來的json字串
if (i == 0)
{
value_zh_cn = GetJsonStringOrValue(str_zh_cn_json, arrKey[i]);
value_en = GetJsonStringOrValue(str_en_json, arrKey[i]);
}
else//如果非第一層 ,那么根據子級key獲取上面讀取出來的json字串或者值
{
value_zh_cn = GetJsonStringOrValue(value_zh_cn as string, arrKey[i]);
value_en = GetJsonStringOrValue(value_en as string, arrKey[i]);
}
}
public static object GetJsonStringOrValue(string input_json, string key)
{
if (String.IsNullOrEmpty(input_json) || String.IsNullOrEmpty(key))
return string.Empty;
input_json = input_json.Replace("\r\n", string.Empty);
JavaScriptSerializer serializer = new JavaScriptSerializer();
Dictionary<string, object> json = serializer.DeserializeObject(input_json) as Dictionary<string, object>;
//這里 經理說object可以直接取到路徑上的key
object value;
json.TryGetValue(key, out value);
value = serializer.Serialize(value);
return value;
}
uj5u.com熱心網友回復:
其實我覺得轉物件也可以吧。。。。但是如果你只是試用一下資料,那就jobject
uj5u.com熱心網友回復:
至于怎么分解 room.GJAerialView這個就不說了。
uj5u.com熱心網友回復:
正則運算式匹配一下好了uj5u.com熱心網友回復:
依舊還是聯想人們根據css選擇聯想出了jquery 選擇器
uj5u.com熱心網友回復:
第一個是方法的片段
ctrl+f查找問題里面的下面這句話
//這里 經理說object可以直接取到路徑上的key
uj5u.com熱心網友回復:
寫來看看
uj5u.com熱心網友回復:
這個有可能傳到C# 的字串是 room1.GJAerialView1 也有可能是 room.GJAerialView
uj5u.com熱心網友回復:
難道你們就不想自己動手試試么???
JObject o = JObject.Parse(@"{
""room"": {
""GJAerialView"": ""產業園基地"",
""L02Room"": ""顯示幕組裝車間"",
""MRoom"": ""MI車間"",
""SMTRoom"": ""SMT車間"",
""SL03Room"": ""多功能產品組裝車間"",
""unknown"": ""未配置的車間""
},
""room1"": {
""GJAerialView1"": ""產業園基地1"",
""L02Room1"": ""顯示幕組裝車間1""
}
}");
string name = (string)o.SelectToken("room.GJAerialView");猜猜看,結果是啥!!
uj5u.com熱心網友回復:
其實我覺得轉物件也可以吧。。。。
但是如果你只是試用一下資料,那就jobject
非常感謝你還用心敲代碼幫忙直觀展示
可是我們傳入的字串是 room1.GJAerialView1 也有可能是 room.GJAerialView
依舊還是聯想
人們根據css選擇聯想出了jquery 選擇器
那么人們會不會根據xml的xmlpath聯想出一個jsonpath出來?
回答是肯定的
https://goessner.net/articles/JsonPath/
那么做為一個被人應用最廣的net json庫Newtonsoft.Json 會不會支持他呢?
回答依舊是肯定的
https://www.newtonsoft.com/json/help/html/QueryJsonSelectToken.htm
string name = (string)o.SelectToken("room.GJAerialView");[/code]
猜猜看,結果是啥!!
string name = (string)o.SelectToken("room.GJAerialView");
紅色的是傳入的引數,是動態不是寫死的,我們不知道他會傳什么,所以不會知道它遍歷哪個json的
uj5u.com熱心網友回復:
其實我覺得轉物件也可以吧。。。。
但是如果你只是試用一下資料,那就jobject
非常感謝你還用心敲代碼幫忙直觀展示
可是我們傳入的字串是 room1.GJAerialView1 也有可能是 room.GJAerialView
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/266158.html
標籤:ASP.NET
