come convertire array con chiavi / valori in JSON c #

Sono completamente nuovo in C # e mi sono già dato un mal di testa. So che probabilmente è roba da bambini per te, ma ho passato un’ora + googleing in giro e non riesco a risolverlo.

Tutto quello che sto cercando di fare è convertire un array in JSON. Conosco bene PHP, quindi ecco un esempio di ciò che sto cercando di fare (in PHP):

$myarr=array("key1"=>"value for key 1","key2"=>"value for key 2"); $jsonArray=json_encode($myarr); 

quindi $jsonArray sarà: {"key1":"value for key 1","key2":"value for key 2"}

Ora, sto cercando di fare esattamente questo, ma in C #.

Questo è quello che ho finora:

  String[] keys = new String[] { "emailSend","toEmail"}; String[] values = new String[] {textBox2.Text,textBox1.Text}; JavaScriptSerializer js = new JavaScriptSerializer(); string json = js.Serialize(keys);//final json result MessageBox.Show(json);//show me 

Sto usando Visual Studio C # 2010, che sta generando questo errore (con il codice sopra):

Non è stato ansible trovare il nome dello spazio dei nomi ‘JavaScriptSerializer’ (manca una direttiva using o un riferimento all’assembly?)

Qualche idea su cosa sto facendo male qui? Grazie

Sembra che tu non abbia una dichiarazione d’ using corretta? Aggiungi quanto segue all’inizio del tuo file:

using System.Web.Script.Serialization;

MODIFICA : per ottenere un JSON formattato correttamente, utilizzare invece un Dictionary :

 var keyValues = new Dictionary { { "emailSend", textBox1.Text }, { "toEmail", textBox2.Text } }; JavaScriptSerializer js = new JavaScriptSerializer(); string json = js.Serialize(keyValues); MessageBox.Show(json); 

che ne dici di usare JSON.NET e la class JObject?

 var obj = new JObject(); obj["One"] = "Value One"; obj["Two"] = "Value Two"; obj["Three"] = "Value Three"; var serialized = JsonConvert.SerializeObject(obj); 

ti dà

 {"One":"Value One","Two":"Value Two","Three":"Value Three"}