C#json解析时,得到JObject后怎么判断它的某一键值是否存在

如题所述

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Newtonsoft.Json.Linq;
using Newtonsoft.Json;
using System.IO;

namespace JsonTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "{\"3\":123,body:456,list:{title:'abc',body:'what'}}";
            JObject jo = JObject.Parse(str);
            if (jo.Property("3") == null || jo.Property("3").ToString() == "")
            {
                Console.WriteLine("键值key不存在!");
            }
            bool hasErr = jo.Properties().Any(p => p.Name == "err")//或是这样
            IEnumerable<JProperty> properties = jo.Properties();
            foreach (JProperty item in properties)
            {
                Console.WriteLine(item.Name + ":" + item.Value);
            }
            Console.ReadKey();
        }
    }
}
参考:
http://q.cnblogs.com/q/46146/

温馨提示:内容为网友见解,仅供参考
无其他回答

C# json解析时,得到JObject后怎么判断它的某一键值是否存在?
"language": 4,}其中AGE是可选项,如上的Json字符串中就没有,现在就要判断得到的JObject(现在是content)中是否有键值AGE,否则这样直接得到value值int age = (int)content[JsonKey.AGE];会报错,---》引发了System.ArgumentNullException类型的异常\\r\\n参数名: value"} ...

C#json解析时,得到JObject后怎么判断它的某一键值是否存在
using System;using System.Collections.Generic;using System.Linq;using System.Text;using Newtonsoft.Json.Linq;using Newtonsoft.Json;using System.IO;namespace JsonTest{ class Program { static void Main(string[] args) { string str = "{\\"3\\":123,body:456,list:{title:...

C#中jobject 命名空间的什么
添加引用后,鼠标点击JObject后再右键==》解析 即可。

C# 使用Newtonsoft直接读取Json格式文本(Linq to Json)
首先,安装 Newtonsoft.Json至关重要。可以通过NuGet包管理器或.NET CLI进行安装,例如在Visual Studio中,只需右键点击项目,选择“管理NuGet包”,然后搜索并安装即可。假设你手头有一段JSON文本,使用Newtonsoft,处理方式如下:代码如下所示,将JSON文本解析为JObject对象:运行此代码后,将得到预期的结果...

[C#.net资料] 解析Json文件(使用NewtonJson库)
2. 解析Json文件NewtonJson官网提供了详细的文档和示例,遇到问题可查阅。以下是解析不同类型数据的基本方法:数组型数据:使用JArray,但需要转换为JObject以访问属性值 对象型数据:直接处理JObject 复杂对象型数据:同样处理JObject3. 数据序列化序列化支持JArray和JObject,特别是处理复合类型时,需要...

c#如何获得返回json数组中的数组
然后使用 var result = JsonConvert.DeserializeObject<Jobject>(str);\/\/jobject是你粘贴后生成的类型把结果反序列为对象 2.创建匿名对象 var worlds = new {words = ""};var worlds_result = Enumerable.Repeat(worlds, 1).ToArray();var value = new { log_id = 123,words_result_num=2, ...

C# 如何解析嵌套类型的JSON字符串,
得到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"...

c# json对象中含有数组,数组中又含有数组!
string result = string.Empty;using (StreamReader sr = new StreamReader(File.Open(@"D:\\csharp\\output\\output\\data.json", FileMode.Open))){ result = sr.ReadToEnd();} JObject jo = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(result);Console.WriteLine(jo["data"]["symbols"...

C# 中的json.net如何取得数组中的个数以及枚举它们
把子成员类型判断准确就可以。switch( jo["items"].Type ){case JTokenType.Array: int count =((JArray)jo["items"]).Count; \/\/枚举 foreach(JToken t in (JArray)jo["items"]){ switch(t.Type){ } }break;case JTokenType.Object: int count =((JObject)jo[...

c#解析JSON的几种办法
输出:使用JavaScriptSerializer \/\/ using System.Web.Script.Serialization;var jser = new JavaScriptSerializer();var json = jser.Serialize(new List<Person>() { p1, p2 });var persons = jser.Deserialize<List<Person>>(json);使用Silverlight 使用JSON.NET 输出:LINQ:其他:输出:...

相似回答