2017-10-11 2 views
0
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Json; 

namespace StackOverflowQuestion 
{ 
    class StackOverflowQuestion 
    { 
     public StackOverflowQuestion() 
     { 
      JsonObject jsonObj = new JsonObject(); 
      string[] arr = { "first_value", "second_value", "third_value"   }; 
      obj.Add("array", arr); // Compiler cannot convert string[] to System.Json.JsonValue 

     } 
    } 
} 

I wie in Ergebnis Json Objekt erhalten möchtenWie konvertiert man Array (string []) in JsonValue?

{"array":["first_value","second_value","third_value"]"} 
+2

nicht JavaScriptSerializer verwenden. Es ist veraltet. Microsoft selbst verwendet Json.NET –

Antwort

0

Sie JavaScriptSerializer stattdessen ein JsonObject deklarieren können

string[] arr = { "first_value", "second_value", "third_value"   }; 
new JavaScriptSerializer().Serialize(arr) 
0

Sie

können this Bitte
JObject json = JObject.Parse(str); 

beziehen .

1

Erstellen Sie eine Wrapper-Klasse, die Sie serialisieren, die eine "Array" -Eigenschaft hat. Dadurch kann das serialisierte JSON-Objekt den Feldnamen "Array" haben, nach dem Sie suchen.

var array = { "first_value", "second_value", "third_value" }; 
var json = JsonConvert.SerializeObject(new JsonArray 
{ 
    Array = array, 
    Some_Field = true 
}); 

public class JsonArray 
{ 
    public string[] Array { get; set; } 

    public bool Some_Field { get; set; } 
} 

Hinweis, diese verwendet Json.NET, die Sie herunterladen können/weitere Informationen finden über hier: https://www.newtonsoft.com/json

+0

Okay. Aber wie man solche JSON erzeugt: {"Some_field": True, "Array": ["erster_Wert", "zweiter_Wert", "dritter_Wert"] "} –

+0

@ J.Huxley siehe Update –

0

Download/installieren NuGet Paket "Newtonsoft.Json" und dann versuchen, diese:

string[] arr = { "first_value", "second_value", "third_value"}; 
var json = JsonConvert.SerializeObject(arr); 

so gibt es keine Wrapper und so die json -string sucht wie folgt aus:

[ 
    "first_value", 
    "second_value", 
    "third_value" 
] 

Wenn Sie eine warpper (Person.class) mit Daten in es verwenden würde, würde es so aussehen:

// Structure.... 
Person 
    private String name; 
    private String lastName; 
    private String[] arr; // for your example... 

JsonConvert.SerializeObject(person); 
{ 
    "Person": { 
     "name": "<VALUE>", 
     "lastName": <VALUE>, 
     "arr":[ 
      "first_value", 
      "second_value", 
      "third_value" 
     ] 
    } 
} 
Verwandte Themen