Newtonsoft提取多層巢狀的JSON

2021-09-19 13:38:37 字數 1519 閱讀 4111

在.net 2.0中提取這樣的json

}引用命名空間

using newtonsoft.json;

using newtonsoft.json.linq;

可以把上面的json看成乙個物件.你只要寫對應的類即可

public class userinfo

public string name;

public int age;

public address addr;

public class address

public string city;

public string province;

}然後在解析的地方這樣寫:

string jsondata="}";

userinfo user=(userinfo)jsonconvert.deserializeobject(jsondata, typeof(userinfo));

得到city的值只要:user.addr.city;

這樣實現也行

jobject jsonobj = jobject.parse(jsondata);

string name=jsonobj ["name"].tostring();

string age=jsonobj ["age"].tostring();

string city=((jobject )jsonobj ["addr"])["city"].tostring();

string province=((jobject )jsonobj ["addr"])["province"].tostring();

就用遍歷

public string getjsonvalue(jenumerablejtoken,string key)

else}}

return null;

}在呼叫的時候:

string jsondata = "}";

jobject jsonobj = jobject.parse(jsondata);

response.write(getjsonvalue(jsonobj.children(), "province"));

如果有多層巢狀的陣列

string  jsondata = ",]}";

jobject  jsonobj = jobject.parse(jsondata);

jarray  jar = jarray.parse(jsonobj["addr"].tostring());

jobject  j = jobject.parse(jar[0].tostring());

response.write(j["city"]);

json轉xml

string xmlstr=((xmldocument)jsonconvert.deserializexmlnode(jsondata)).innerxml.tostring();

scrapy 一次性提取多層巢狀標籤的所有文字

怎樣才能一次性提取多層巢狀標籤的所有文字,而不是通過迴圈判斷來進行拼接呢。詳細如下 假如頁面如下 helloworld 我要的提取結果是 helloworld 這裡就需要注意text 的使用了 首先設定sel selector text doc,type html 如果text 前面使用乙個反斜槓 ...

python的多層巢狀列表處理

isinstance 函式來判斷乙個物件是否是乙個已知的型別 語法 以下是 isinstance 方法的語法 isinstance object,classinfo 引數 object 例項物件。classinfo 可以是直接或間接類名 基本型別或者由它們組成的元組。返回值 如果物件的型別與引數二的...

關於DIV多層巢狀的margin top的BUG

今天在做登入頁面的時候發現個margin top的bug 初始 如下 html css errorstyle結果發現ie6.ie7正常,ie8,ff顯示錯誤。癥結 當兩個容器巢狀時,如果外層容器和內層容器之間沒有別的元素,firefox會把內層元素的margin top作用于父元素。解決方案 1 使...