如何使用类名将json反序列化为动态值? [英] How to deserialize json with class name as dynamic values?
问题描述
This is My Json string.
--------------------------------
{
"flag": "success",
"data": {
"data": {
"111349": {
"pkgname": "com.saavn.android",
"name": "APP Download - Saavn - Android(MY)"
},
"111350": {
"pkgname": "com.saavn.android",
"name": "APP Download - Saavn - Android(TH)"
},
"111351": {
"pkgname": "com.saavn.android",
"name": "APP Download - Saavn - Android(IN)"
}
}
}
}
-----------------------------
After the deserialize json, below is my Class name.
-----------------------------
public class __invalid_type__111349
{
public string pkgname { get; set; }
public string name { get; set; }
}
public class __invalid_type__111350
{
public string pkgname { get; set; }
public string name { get; set; }
}
public class __invalid_type__111351
{
public string pkgname { get; set; }
public string name { get; set; }
}
public class Data2
{
public __invalid_type__111349 __invalid_name__111349 { get; set; }
public __invalid_type__111350 __invalid_name__111350 { get; set; }
public __invalid_type__111351 __invalid_name__111351 { get; set; }
}
public class Data
{
public Data2 data { get; set; }
}
public class RootObject
{
public string flag { get; set; }
public Data data { get; set; }
}
------------- ---------
在每个请求111349,111350,111351 ....这个节点将会改变,所以我想读取那个节点(存储在任何对象中)和同时在子节点下读取。
----------------------
----------------------
In each Request 111349,111350,111351....this Nodes will be-change,So i want to read that Node(Store in any Object) and Read Under Sub-Node also.
----------------------
推荐答案
你是一个创建JSON?如果你当时也许这个
are you the one creating the JSON ? if you are then perhaps this
111349:{
pkgname:com.saavn.android,
名称:APP下载 - Saavn - Android(MY)
}
"111349": {
"pkgname": "com.saavn.android",
"name": "APP Download - Saavn - Android(MY)"
}
会更好(也许)
would be better off as (perhaps)
{
request:111349,
pkgname:com.saavn .android,
名称:APP下载 - Saavn - Android(MY)
}
{
"request": "111349",
"pkgname": "com.saavn.android",
"name": "APP Download - Saavn - Android(MY)"
}
然后你可以返回这些对象的数组 - 你还在JSON返回中有多个(可能是多余的)'数据'级别
Then you could have an array of these objects returned - you also have multiple (likely redundant) levels of 'data' in the JSON return
--------------Create the Json Class file--------------
class RootObject
{
public string flag { get; set; }
public Data2 data;
}
class Data2
{
public Dictionary<string, Data> data { get; set; }
}
class Data
{
public string pkgname { get; set; }
public string name { get; set; }
}
}
------------------Function Wise-------------------
public void readYM_Json(string json)
{
RootObject root = JsonConvert.DeserializeObject<RootObject>(json);
string Flag = root.flag;
foreach (var i in root.data.data.Keys)
{
int OffierID = i;
Data data = root.data.data[i];
string pkgname = data.pkgname;
string name = data.name;
---here call the Insert FUnction--------
}
这篇关于如何使用类名将json反序列化为动态值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!