2017-09-30 10 views
0

JSON.NetなしでUWPでc#を使用してjsonの書式設定された文字列を作成しようとしていますが、そこに到達する方法を理解できません。のは、私は動的に次のようなJSONを作成したいとしましょう:私は読んだことがあるすべてのものからJSON.NetなしでUWPでjsonを作成

[{"id":130},{"id":131},{"id":132},{"id":133},{"id":134}] 

、私が私のJSONの内容を定義するクラスが必要であることを思われます。たとえば:

class accountTypes 
{ 
    public int id { get; set; } 
    public string type { get; set; } 
} 

そこから、私が唯一のタイプ「accountTypes」のリストを作成し、リストに各「ID」を追加する必要があると思われます。

List<accountTypes> jsonList = new List<accountTypes>(); 
int numOfChildren = AccountTypesList.Children.Count; 
for (int i = 0; i < numOfChildren; i++) 
{ 
    if (((CheckBox)AccountTypesList.Children[i]).IsChecked == true) 
    { 
     jsonList.Add(new accountTypes() { id = (int)(double)((CheckBox)AccountTypesList.Children[i]).Tag }); 
    } 
} 

私は上記のコードは非常に欠陥があることを99%確信していますがそれは、少なくともスタートですので、それは、私にクラッシュしていません。私は今、どのようにリスト "jsonList"をシリアル化するのかと苦労しています。これまでに読んだことは、JSON.netまたはJavaScriptSerializerクラスを指し、Windows.Data.Jsonを指しません。 Windows.Data.Jsonを使用してjsonをシリアライズする方法の簡単な例を見ることができれば、私のリストで何が起こっているのかを少なくとも視覚化することができます。つまり、Windows.Data.Jsonを使用して配列やリストをシリアル化するにはどうすればいいですか?

+3

あなたはすべてのキャスティングでウィザードになれます – Jonesopolis

+0

JsonObjectを試しましたか:https://docs.microsoft.com/en-us/uwp/api/windows.data.json.jsonobject – Naidu

答えて

1

まず、すべてのマッピングを処理する組み込みJSONシリアライザはありません。これはまさにJSON.NETがあなたのためにやっていることです。したがって、あなたはマニュアルと長い道のりを取る必要があります。

[{"id":130},{"id":131},{"id":132},{"id":133},{"id":134}] 

あなたは​​クラスを使用する必要があります。

は、まさにこのような結果を作成します。あなたが(手動ステップとしてだけでなく)自分のクラスオブジェクト自体のJsonObjectを作成するには、このメソッドを使用するのに対し

public string ToJson(List<accountTypes> objectList) 
{ 
    var jArray = new JsonArray(); 
    foreach (var at in objectList) 
    { 
     jArray.Add(ToJson(at)); 
    } 
    return jArray.ToString(); 
} 

:たとえば、このような方法にあなたのjsonListオブジェクトを渡す

public JsonObject ToJson(accountTypes at) 
{ 
    var jObj = new JsonObject(); 
    jObj.SetNamedValue("id", JsonValue.CreateNumberValue(at.id)); 
    return jObj; 
} 
関連する問題