Ejemplo n.º 1
0
        /// <summary>
        /// オプションフィールドを検索し、"options"キーに入れる
        /// </summary>
        /// <param name="json">NbJsonObject</param>
        /// <returns>修正されたNbJsonObject</returns>
        protected NbJsonObject ConvertJsonToOptionsIncluded(NbJsonObject json)
        {
            var modifiedJson = new NbJsonObject();
            var option       = new NbJsonObject();

            //キーをListに変換する
            List <string> keysList = json.Keys.ToList();

            foreach (string key in keysList)
            {
                if (IsKeyForOption(key))
                {
                    // オプションに格納
                    option.Add(key, json[key]);
                }
                else
                {
                    // modifiedJsonにコピー
                    modifiedJson.Add(key, json[key]);
                }
            }

            // オプションが存在する場合
            if (option.Count() > 0)
            {
                // "options"キーに入れる
                modifiedJson[KeyOptions] = option;

                // 元のキー/値を削除
                List <string> list = option.Keys.ToList();
                foreach (string key in list)
                {
                    modifiedJson.Remove(key);
                }
            }
            return(modifiedJson);
        }
        // オプションプロパティを検索し、"options"キーに入れる
        protected void FindAndSetOptions(NbJsonObject json)
        {
            NbJsonObject option = new NbJsonObject();

            //キーをListに変換する
            List <string> keysList = json.Keys.ToList();

            foreach (string key in keysList)
            {
                FindOptions(key, json, option);
            }

            if (option.Count() > 0)
            {
                json[KeyOptions] = option;

                // 元のキー/値を削除
                List <string> list = option.Keys.ToList();
                foreach (string key in list)
                {
                    json.Remove(key);
                }
            }
        }