首页 > 编程语言 >C#将string转成json并修改其中的值

C#将string转成json并修改其中的值

时间:2024-02-20 17:34:29浏览次数:23  
标签:string C# mac jToken json new JToken sta

我想将一个json字符串中的某个字段值修改,然后重新转成新的json字符串。
初始的json字符串如下:

{
    deviceKey = "gateway dk",
    cmd = "actionCall",
    service = new[] {
        new {
            siid = 101,
            action = new {
                iid = 2,
                inputData = new[] {
                    new {
                        index = 1,
                        value = "000123456789",
                        descreption = "sta mac"
                    },
                    new {
                        index = 2,
                        value = "shell var 0",
                        descreption = ""
                    }
                }
            }
        }
    },
    transactionId = ""
}

可以使用Newtonsoft.Json库,然后通过JToken来实现

try
{
    JToken jToken = JToken.Parse(TbMsgToSend);
    var valueToken = jToken.SelectToken("service[0].action.inputData[0].value");
    var descToken = jToken.SelectToken("service[0].action.inputData[0].descreption");
    if (valueToken != null && descToken.ToString().Equals("sta mac"))
    {
        valueToken.Replace(_tbMqttDeviceDK);
    }

    TbMsgToSend = jToken.ToString();
}
catch (Exception ex)
{
    Tools.AppendLog(LogType.Type.Recv, $"自动修改mqtt报文中的sta mac值失败。原因:{ex.Message}");
    Tools.addMesIntoMessageQueue("自动修改mqtt报文中的sta mac值失败");
}

TbMsgToSend是原来的json字符串

标签:string,C#,mac,jToken,json,new,JToken,sta
From: https://www.cnblogs.com/xavierxiu/p/18023629

相关文章

  • Caused by: java.lang.ClassNotFoundException: com.qcloud.cos.auth. 类找不到异常
    java.lang.ClassNotFoundException 表示在运行时找不到指定的类。在这种情况下,缺少了 com.qcloud.cos.auth 包中的类。请确保项目中包含了腾讯云 COS SDK 相关的依赖,并且这些依赖能够正确加载。检查项目的依赖配置,确保包含了腾讯云 COS SDK 相关的依赖。 腾讯云contr......
  • orchard core 开启openid 使用uniapp结合oidc-client 作为客户端连接
    官方的项目地址:https://github.com/onestar1/OrchardSkills.OrchardCore.OIDC.Vue.js/tree/main/OrchardSkills.OrchardCore.MaterialDesignTheme操作步骤:单独clonehttps://github.com/OrchardSkills/OrchardSkills.OrchardCore.MaterialDesignTheme1、打开Recipes目录下......
  • String
    string容器(重点)1.数据结构:连续的存储空间,用一个char*指向这片空间2.迭代器:随机访问迭代器3.常用的api:​ 1.构造string();//创建一个空的字符串例如:stringstr;string(conststring&str);//使用一个string对象初始化另一个string对象string(constchar*s);//使......
  • P2899 [USACO08JAN] Cell Phone Network G
    原题链接题解一开始我想的是每个节点要么建,要么不建,可是这样一来不好转移,因为有如下情况(黑色代表建站)于是我们换一个角度思考,我们发现一个点要能通网,有三种情况:1.自己建站2.儿子建站3.父亲建站Code#definelllonglong#include<bits/stdc++.h>usingnamespacestd;ve......
  • CORS就是跨域吗?
    首先,跨域的域是什么?跨域的英文是:Cross-Origin。Origin 中文含义为:起源,源头,出生地。在跨域中,"域"指的是一个Web资源(比如网页、脚本、图片等)的源头。包括该资源的协议、主机名、端口号。在同源策略中,如果两个资源的域相同,则它们属于同一域,可以自由进行交互和共享数据。反之......
  • Cassandra
    Cassandra知识梳理Cassandra简介ApacheCassandra是一个开源,分布式和分散/分布式存储系统(数据库),用于管理分布在世界各地的大量结构化数据。它提供高可用性服务,没有单点故障。它具有可伸缩性,容错性和一致性。它是一个面向列的数据库。其分发设计基于亚马逊的Dynamo及其在Goo......
  • dockerfile中安装软件时需要选择地区的问题
     一个例子FROMubuntu:20.04WORKDIR/rootCOPY./sources.list/etc/apt/sources.listCOPY./cron-start.sh/opt/cron-start.shARGDEBIAN_FRONTEND=noninteractiveENVTZ=Asia/ShanghaiRUNapt-getupdate&&\apt-getinstall-ypython3python3-pipv......
  • C++ 模板的笔记2
    C++模板的笔记2关于可变参函数模板借鉴了一部分笔记,感谢大佬类模板中的嵌套类模板可以嵌套其他类模板,就像普通类可以嵌套其他普通类一样。嵌套的类模板可以访问外部类模板的成员,包括私有成员。示例:#include<iostream>usingnamespacestd;template<typenameT>classO......
  • 前端页面之间传输数据 localStorage
    效果发送方接收方localStorage的使用//保存数据localStorage.setItem('key',value);//获取数据localStorage.getItem('key');发送方<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><......
  • C 语言实现对 Stop-and-Wait 协议的模拟
    协议设计~事件动作发送方从应用层收到数据若处于等待上层数据状态,产生一个分组并发送,启动计时器;若处于等待ACK状态,将数据存入缓冲区发送方超时重传当前未确认的数据包发送方收到ACK若对应当前数据包的ACK,停止计时器,开始发送缓冲区中的下一个数据包;若ACK不......