JSON.NET C#获取对反序列化对象的访问

JSON.NET C#获取对反序列化对象的访问,c#,.net,json,linq,C#,.net,Json,Linq,我有一些JSON数据,我已经设法获取并放置在动态类型中 下面是它作为JSON的外观 {"fruits":{"a":"orange","b":"banana","c":"apple"},"numbers":[1,2,3,4,5,6],"holes":{"0":"first","5":"second","6":"third"}} 下面是我如何使用动态类型收集它 dynamic myObj =JsonConvert.DeserializeObject(output); 我需要找到一种方法来分离对象

我有一些JSON数据,我已经设法获取并放置在动态类型中

下面是它作为JSON的外观

{"fruits":{"a":"orange","b":"banana","c":"apple"},"numbers":[1,2,3,4,5,6],"holes":{"0":"first","5":"second","6":"third"}}
下面是我如何使用动态类型收集它

dynamic myObj =JsonConvert.DeserializeObject(output);
我需要找到一种方法来分离对象,并将其放置在某种数组中,这样我就可以掌握这些值。假设我想要获得holes数组并获得某种循环中所有值的访问权

如有任何建议,将不胜感激


谢谢

请看一下
System.Web.Script.Serialization.JavaScriptSerializer

您可以将JSON字符串反序列化为强类型类,如下所示:

数据类

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
您将拥有嵌套类。然后,语法将类似于此

用法

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
string json=//您的json字符串
JavaScriptSerializer js=新的JavaScriptSerializer();
自动完成jsonObject=js.Deserialize(json);
开关(jsonObject.action)
{
//
}

看看
System.Web.Script.Serialization.JavaScriptSerializer

您可以将JSON字符串反序列化为强类型类,如下所示:

数据类

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
您将拥有嵌套类。然后,语法将类似于此

用法

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
string json=//您的json字符串
JavaScriptSerializer js=新的JavaScriptSerializer();
自动完成jsonObject=js.Deserialize(json);
开关(jsonObject.action)
{
//
}

看看
System.Web.Script.Serialization.JavaScriptSerializer

您可以将JSON字符串反序列化为强类型类,如下所示:

数据类

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
您将拥有嵌套类。然后,语法将类似于此

用法

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
string json=//您的json字符串
JavaScriptSerializer js=新的JavaScriptSerializer();
自动完成jsonObject=js.Deserialize(json);
开关(jsonObject.action)
{
//
}

看看
System.Web.Script.Serialization.JavaScriptSerializer

您可以将JSON字符串反序列化为强类型类,如下所示:

数据类

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
您将拥有嵌套类。然后,语法将类似于此

用法

public class AutocompleteAction
{
    public String action { get; set; }
}
string json = // your json string
JavaScriptSerializer js = new JavaScriptSerializer();
AutocompleteAction jsonObject = js.Deserialize<AutocompleteAction>(json);
switch (jsonObject.action)
{
  //
}
string json=//您的json字符串
JavaScriptSerializer js=新的JavaScriptSerializer();
自动完成jsonObject=js.Deserialize(json);
开关(jsonObject.action)
{
//
}

我最终使用Json.NET实现了这一点。希望对某人有用。我喜欢评论和批评,因为可能有更好的方法

string output = writeClient.Get<string>("mykey");
            JObject myObj = (JObject)JsonConvert.DeserializeObject(output);
            JObject fruits = myObj["fruits"] as JObject;
            JObject holes = myObj["holes"] as JObject;

            foreach (var fruit in fruits)
            {

                MyTestClass myClass = new MyTestClass();
                myClass.myKey = fruit.Key;
                myClass.myVal = fruit.Value.ToString();

            }

            JToken nums = myObj["nums"];
            IEnumerable<string> allString = nums.Children().Values<string>();

            foreach (var myVal in allString)
            {
                // do something..
            }
string输出=writeClient.Get(“mykey”);
JObject myObj=(JObject)JsonConvert.DeserializeObject(输出);
JObject水果=myObj[“水果”]作为JObject;
JObject holes=myObj[“holes”]作为JObject;
foreach(水果中的果实)
{
MyTestClass myClass=新的MyTestClass();
myClass.myKey=fruit.Key;
myClass.myVal=fruit.Value.ToString();
}
JToken nums=myObj[“nums”];
IEnumerable allString=nums.Children().Values();
foreach(allString中的var myVal)
{
//做点什么。。
}

我最终使用Json.NET实现了这一点。希望对某人有用。我喜欢评论和批评,因为可能有更好的方法

string output = writeClient.Get<string>("mykey");
            JObject myObj = (JObject)JsonConvert.DeserializeObject(output);
            JObject fruits = myObj["fruits"] as JObject;
            JObject holes = myObj["holes"] as JObject;

            foreach (var fruit in fruits)
            {

                MyTestClass myClass = new MyTestClass();
                myClass.myKey = fruit.Key;
                myClass.myVal = fruit.Value.ToString();

            }

            JToken nums = myObj["nums"];
            IEnumerable<string> allString = nums.Children().Values<string>();

            foreach (var myVal in allString)
            {
                // do something..
            }
string输出=writeClient.Get(“mykey”);
JObject myObj=(JObject)JsonConvert.DeserializeObject(输出);
JObject水果=myObj[“水果”]作为JObject;
JObject holes=myObj[“holes”]作为JObject;
foreach(水果中的果实)
{
MyTestClass myClass=新的MyTestClass();
myClass.myKey=fruit.Key;
myClass.myVal=fruit.Value.ToString();
}
JToken nums=myObj[“nums”];
IEnumerable allString=nums.Children().Values();
foreach(allString中的var myVal)
{
//做点什么。。
}

我最终使用Json.NET实现了这一点。希望对某人有用。我喜欢评论和批评,因为可能有更好的方法

string output = writeClient.Get<string>("mykey");
            JObject myObj = (JObject)JsonConvert.DeserializeObject(output);
            JObject fruits = myObj["fruits"] as JObject;
            JObject holes = myObj["holes"] as JObject;

            foreach (var fruit in fruits)
            {

                MyTestClass myClass = new MyTestClass();
                myClass.myKey = fruit.Key;
                myClass.myVal = fruit.Value.ToString();

            }

            JToken nums = myObj["nums"];
            IEnumerable<string> allString = nums.Children().Values<string>();

            foreach (var myVal in allString)
            {
                // do something..
            }
string输出=writeClient.Get(“mykey”);
JObject myObj=(JObject)JsonConvert.DeserializeObject(输出);
JObject水果=myObj[“水果”]作为JObject;
JObject holes=myObj[“holes”]作为JObject;
foreach(水果中的果实)
{
MyTestClass myClass=新的MyTestClass();
myClass.myKey=fruit.Key;
myClass.myVal=fruit.Value.ToString();
}
JToken nums=myObj[“nums”];
IEnumerable allString=nums.Children().Values();
foreach(allString中的var myVal)
{
//做点什么。。
}

我最终使用Json.NET实现了这一点。希望对某人有用。我喜欢评论和批评,因为可能有更好的方法

string output = writeClient.Get<string>("mykey");
            JObject myObj = (JObject)JsonConvert.DeserializeObject(output);
            JObject fruits = myObj["fruits"] as JObject;
            JObject holes = myObj["holes"] as JObject;

            foreach (var fruit in fruits)
            {

                MyTestClass myClass = new MyTestClass();
                myClass.myKey = fruit.Key;
                myClass.myVal = fruit.Value.ToString();

            }

            JToken nums = myObj["nums"];
            IEnumerable<string> allString = nums.Children().Values<string>();

            foreach (var myVal in allString)
            {
                // do something..
            }
string输出=writeClient.Get(“mykey”);
JObject myObj=(JObject)JsonConvert.DeserializeObject(输出);
JObject水果=myObj[“水果”]作为JObject;
JObject holes=myObj[“holes”]作为JObject;
foreach(水果中的果实)
{
MyTestClass myClass=新的MyTestClass();
myClass.myKey=fruit.Key;
myClass.myVal=fruit.Value.ToString();
}
JToken nums=myObj[“nums”];
IEnumerable allString=nums.Children().Values();
foreach(allString中的var myVal)
{
//做点什么。。
}

创建一个表示JSON对象结构的类,并反序列化JSON数据