2017-09-14 13 views
0

いくつかの要素が含まれているJSONに問題があります。要素のJSON配列に、要素自体を含むIDのないオブジェクトの変換が必要です。基本的に私が欲しいのは、この構造を変換することである。この構造体へのC#のJsonから属性コンテナを削除するには?

{ 
    "SubscriptionStorages": { 
    "1": { 
     "Type": "subscriberstorage", 
     "SubscriberStorage_Id": 1, 
     "SubscriberStorage_AdminDescription": "JM Basic", 
     "SubscriberStorage_MaxStorage": 268435456000 
    }, 
    "2": { 
     "Type": "subscriberstorage", 
     "SubscriberStorage_Id": 2, 
     "SubscriberStorage_AdminDescription": "JM Standard", 
     "SubscriberStorage_MaxStorage": 536870912000 
    } 
    } 
} 

{ 
    "SubscriptionStorages": [ 
    { 
     "Type": "subscriberstorage", 
     "SubscriberStorage_Id": 1, 
     "SubscriberStorage_AdminDescription": "JM Basic", 
     "SubscriberStorage_MaxStorage": 268435456000 
    }, 
    { 
     "Type": "subscriberstorage", 
     "SubscriberStorage_Id": 2, 
     "SubscriberStorage_AdminDescription": "JM Standard", 
     "SubscriberStorage_MaxStorage": 536870912000 
    } 
    ] 
} 

はそれを行うための任意の簡単な方法はありますか? これはこれまで私が持っていたものですが、それは良くありません... 私はここで何が欠けていますか?

List<string> items = new List<string>(); 
if (itemsList != null) 
{ 
    if (itemsList.Count > 0) 
    { 
     JToken outer = JToken.Parse(jsonBody); 
     foreach (JToken t in outer) 
     { 
      items.Add(t.ToString()); 
     } 
    } 
} 
return items; 
+0

あなたは最小限の例にあなたのサンプルJSONを減らす(と明白な理由のためにそれを引用避ける)もらえますか? 2つの例の間の差異が、現在のように短い場合よりもはるかに簡単です。 –

+0

あなたの願いは私のコマンドです:)完了。 – OrAssayag

+0

それは何らかの理由でまだ引用されている - 私はそれを自分で修正します。 –

答えて

0

あなたはこのようなあなたのJSONを変換することができます。

var jo = JObject.Parse(originalJson); 

jo["SubscriptionStorages"] = new JArray(
    jo["SubscriptionStorages"] 
     .Children<JProperty>() 
     .Select(jp => jp.Value) 
); 

var modifiedJson = jo.ToString(); 

フィドル:https://dotnetfiddle.net/9sCx2M

関連する問題