我想将一个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字符串
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)