zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    2019牛客暑期多校赛(第四场)
    单调栈求左右第一个比该数大(小)的位置
    带修莫队板子
    普通莫队算法
    2019牛客暑期多校赛(第三场)B-求01串中的最长01数量相等的子串和子序列
    2019牛客暑假多校赛(第二场) F和H(单调栈)
    网络文件系统nfs
    rsync详解
    逻辑卷LVM
    crontab定时任务
  • 原文地址:https://www.cnblogs.com/skywss27/p/8735452.html
Copyright © 2011-2022 走看看