使用Newtonsoft取出一段json文本中所有的“值”和“键”

就用控制台举例,json包含 “键”和“值” 如 “student”:“WUZI”

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;

引用一波

在这里插入图片描述这里就直接引用了 string json = “一大串json格式的数据”

大伙可自己创建json 自己调试

{"TastId":"1  ","TaskName":"装备强化1次","ActiveValue":"50        ","TotalNumberCompleted":"1 ","AlreadyNumberCompleted":"1         ","TaskLink":"link","IsGetRewards":"0"}

思路:

如果要取出所有的json 值 遍历必不可少 再加上 JProperty 和 JToken

foreach (JProperty jp in JProperty )

实现

好 操作步骤
1

拿到string类型的json值
如:

string json ={"TastId":"1  ","TaskName":"装备强化1次","ActiveValue":"50        ","TotalNumberCompleted":"1 ","AlreadyNumberCompleted":"1         ","TaskLink":"link","IsGetRewards":"0"}

1.1:IQueryable转string (与正文无关请去看2)


            var ss = DBContext.EupTaskTable.Where(p => p.PlayerId == "test@qq.com").Select(p=>new {p.TastId,p.TaskName,p.ActiveValue,p.TotalNumberCompleted,p.AlreadyNumberCompleted,p.TaskLink,p.IsGetRewards});
           foreach (var m in ss)
            {
string  json = Newtonsoft.Json.JsonConvert.SerializeObject(m);
}

2

string转JObject

//类
 JObject myJObject = (JObject)JsonConvert.DeserializeObject(json);
 

3

JObject转.JToken


                JToken record = obj;
    foreach (JProperty jp in record)
                {
                 Console.WriteLine(jp.Value);

//jp.Name is Key jp.Value is Value
                 
                }

示例


       string    json  = "{\"TastId\":\"1  \",\"TaskName\":\"装备强化1次\",\"ActiveValue\":\"50        \",\"TotalNumberCompleted\":\"1 \",\"AlreadyNumberCompleted\":\"1         \",\"TaskLink\":\"link\",\"IsGetRewards\":\"0\"}";

            JObject myJObject = (JObject)Newtonsoft.Json.JsonConvert.DeserializeObject(json);

            JObject obj = myJObject;//obj 

            JToken record = obj;


            foreach (JProperty jp in record)
            {
                Console.WriteLine(jp.Value);



            }
        



            

在这里插入图片描述
作者自用:

 public static void GetDB()
            {


            JObject JSON = new JObject();
            var ss = DBContext.EupTaskTable.Where(p => p.PlayerId == "test@qq.com").Select(p=>new {p.TastId,p.TaskName,p.ActiveValue,p.TotalNumberCompleted,p.AlreadyNumberCompleted,p.TaskLink,p.IsGetRewards});
            


            string json = null;

            foreach (var m in ss)
            {

                json = Newtonsoft.Json.JsonConvert.SerializeObject(m);

                JObject myJObject = (JObject)JsonConvert.DeserializeObject(json);

                JObject obj = myJObject;//obj 

                JToken record = obj;
           

                foreach (JProperty jp in record)
                {
                 Console.WriteLine(jp.Value);


                 
                }





            }





          //  JSON.Add(new JValue(json));


            //foreach (JProperty jProperty in JSON.Properties())
            //{
            //    Console.WriteLine("key:" + jProperty.Name + " value:" + jProperty.Value);

            //}
            Console.ReadKey();



        }
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值