2016-04-05 5 views
1

String.Formatの()文字列に配列を渡す方法:私は「テスト」のような単一の文字列を渡すとJSON文字列を構築する際に私のコードは以下の通りです

string requestBody = string.Format(
      @"{{ 
        ""RequestServerVersion"":""2016.04.05"", 
        ""PreferredDate"":""{0}"", 
        ""StaffList"":""{1}"" 
       }}", 
      preferredDate.Date.ToString("yyyy-MM-dd"), 
      "test"); 

StaffListは、文字列配列です、それは動作しません。 string.Format(...)内で文字列配列を渡すにはどうすればよいですか?サーバー側では、StaffListは文字列Arrayとして処理されます。

ありがとうございます!私の心に入って来る

+0

あなたの配列の内容は、JSON文字列に変換し、String.Formatのにそれを渡すことができます。最後の答え[ここ](http://stackoverflow.com/questions/10387382/how-to-convert-array-with-keys-values-to-json-c-sharp) – Thangadurai

答えて

0

2つのこと:string.Joinを()を使用して、単一の文字列に配列に参加する

  1. 試してみてのstring.Splitを使用してサーバー側の文字列()
  2. 使用を分割JSON配列の各配列インデックスの上にあなたのコード内の構文、ループと、この構文でそれらを一つずつ挿入しますhttp://www.w3schools.com/json/json_syntax.asp

ところで:あなたはシリアライズを使用する代わりに、自分で自分のJSONを構築するために考えられていますか?

+0

を参照してくださいありがとう、Jannik。私はこの質問に答えることでこの質問を終わらせます。 – Ethan

+0

うれしい私は助けることができます。 – Jannik

2

正常に動作することを確認するための優れたライブラリがある場合は、独自のJSONを使用しないでください。

Newtonsoft.Jsonでこれを試してみてください:

string[] staffList = new [] { "Alice", "Bob", "Charlie" }; 
DateTime preferredDate = DateTime.Now; 

var data = new 
{ 
    RequestServerVersion = "2016.04.05", 
    PreferredDate = preferredDate.Date.ToString("yyyy-MM-dd"), 
    StaffList = staffList, 
}; 

string requestBody = Newtonsoft.Json.JsonConvert.SerializeObject(data); 

この出力:

 
{ 
    "RequestServerVersion":"2016.04.05", 
    "PreferredDate":"2016-04-05", 
    "StaffList":["Alice","Bob","Charlie"] 
} 

+0

ありがとうございました。これは参考になります。 – Ethan

関連する問題