json 中去除空格的方法
原理就是重新生成一段json,使用 newtonsoft, 写的不好,请多指教
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Newtonsoft.Json.Linq; using Newtonsoft.Json; namespace Jsonparse { class Program { static void Main(string[] args) { string json = @"[[ [{ 'CPU': 'Intel', 'Drives': [ 'DVD read/writer', '500 gigabyte hard drive' ], 'Mouses': { 'one': '小米', 'two': '戴尔' }, 'type': 'computer' }, { 'CPU': 'Test', 'Drives': [ 'DVD read/writer', '500 gigabyte hard drive' ], 'Mouses': { 'one': '小米', 'two': '戴尔', 'type': 'computer' } } ], { 'CPU': 'wss', 'Drives': [ 'DVD read/writer', '500 gigabyte hard drive' ], 'Mouses': { 'one': '小米', 'two': '戴尔', 'type': 'computer' } } ]]"; string needCopy = @"{ 'CPU ': 'Intel', 'Drives ': [ 'DVD read/writer ', '500 gigabyte hard drive' ], 'Mouses ': { 'one ': '小米', 'two ': '戴尔' }, 'type ': 'computer', 'sameAs ':[], 'Address':{ 'one ': 'address1', 'two ': 'address ', } }"; JObject desJObject = new JObject(); CopyJObject(JObject.Parse(needCopy), ref desJObject); string desStr = JsonConvert.SerializeObject(desJObject); JArray jArray = JArray.Parse(json); IList<JObject> list = new List<JObject>(); GetJObject(jArray, ref list); foreach (var item in list) { Console.WriteLine(JsonConvert.SerializeObject(item)); }; Console.ReadKey(); } public static void GetJObject(JArray jArray, ref IList<JObject> list) { foreach (var item in jArray) { if (item is JObject) list.Add((JObject)item); if (item is JArray) GetJObject((JArray)item, ref list); } } public static void CopyJObject(JObject orgJObject, ref JObject desJObject) { foreach (var pro in orgJObject) { if (pro.Value == null) continue; if (pro.Value is JObject) { JObject des = new JObject(); desJObject[pro.Key.Trim()] = des; CopyJObject((JObject)pro.Value, ref des); } if (pro.Value is JValue) { if (string.IsNullOrEmpty((string)pro.Value)) continue; desJObject.Add(pro.Key.Trim(), pro.Value.ToString().Trim()); } if (pro.Value is JArray) { JArray array = new JArray(); foreach (var item in (JArray)pro.Value) { if (item is JObject) { JObject des = new JObject(); CopyJObject((JObject)item, ref des); array.Add(des); } if (item is JValue) { array.Add(item.ToString()); } } if (array.Count != 0) desJObject.Add(pro.Key.Trim(), array); } } } } }
I'm fine, it's ok
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析