2016-04-05 15 views
1

Mein Code Konstrukt ist unten:Wie ein Array an eine string.Format() String zu übergeben, wenn ein JSON-String

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

StaffList ist ein String-Array, wenn ich eine einzelne Zeichenfolge wie "Test" nicht bestanden, Es wird nicht funktionieren. Wie übermittele ich ein String-Array in der Zeichenfolge.Format (...)? Da auf der Server-Seite StaffList als String-Array behandelt wird.

Vielen Dank!

+0

Sie können Ihre Array Inhalt JSON-String konvertieren und übergeben es dann an String.Format. Siehe die letzte Antwort [hier] (http://stackoverflow.com/questions/10387382/how-to-convert-array-with-keys-values-to-json-c-sharp) – Thangadurai

Antwort

0

Zwei Dinge, die mir in den Sinn kommen:

  1. Versuchen Sie das Array auf einen einzelnen String mit string.Join() und teilen Sie die Zeichenfolge auf server mit String.split()
  2. Verwendung beizutreten der JSON Arrays Syntax in Ihrem Code, Schleife über jeden Array-Index und legen Sie sie nacheinander in dieser Syntax: http://www.w3schools.com/json/json_syntax.asp

BTW: Haben Sie darüber nachgedacht Serialisierung stattdessen verwenden zu bauen Ihre JSON auf eigene Faust?

+0

Danke, Jannik. Ich werde diese Frage schließen, indem ich sie beantworte. – Ethan

+0

Ich bin froh, dass ich helfen konnte. – Jannik

2

Ich würde vermeiden, eigene JSON zu rollen, wenn es gute Bibliotheken gibt, um sicherzustellen, dass es richtig funktioniert.

Versuchen Sie dies mit 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); 

Diese Ausgänge:

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

+0

Dank Enigmativität. Dies ist hilfreich. – Ethan