13

私は C# の初心者で、すでに頭痛の種になっています。これはおそらくあなたにとって子供向けのものであることは知っていますが、1時間以上グーグルで検索しましたが、うまくいかないようです.

私がやろうとしているのは、配列を JSON に変換することだけです。私は PHP をよく知っているので、(PHP で) 私がやろうとしていることの例を次に示します。

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

$jsonArray=json_encode($myarr);

次のよう$jsonArrayになります。{"key1":"value for key 1","key2":"value for key 2"}

今、私はまさにそれをやろうとしていますが、C#で.

これは私がこれまでに持っているものです:

 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

私はこのエラーをスローしているVisual Studio C#2010を使用しています(上記のコードで):

タイプまたは名前空間名「JavaScriptSerializer」が見つかりませんでした (using ディレクティブまたはアセンブリ参照がありませんか?)

ここで私が間違っていることについてのアイデアはありますか? ありがとう

4

2 に答える 2

27

using正しい発言がないように見えますか?ファイルの先頭に次を追加します。

using System.Web.Script.Serialization;

EDIT : 正しくフォーマットされた JSON を取得するには、Dictionary代わりにa を使用します。

var keyValues = new Dictionary<string, string>
               {
                   { "emailSend", textBox1.Text },
                   { "toEmail", textBox2.Text }
               };

JavaScriptSerializer js = new JavaScriptSerializer();
string json = js.Serialize(keyValues);
MessageBox.Show(json);
于 2012-04-30T16:48:50.867 に答える
16

JSON.NETとJObjectクラスを使用するのはどうですか?

var obj = new JObject();

obj["One"] = "Value One";
obj["Two"] = "Value Two";
obj["Three"] = "Value Three";

var serialized = JsonConvert.SerializeObject(obj);

あなたにあげる

{"One":"Value One","Two":"Value Two","Three":"Value Three"}
于 2012-04-30T16:55:31.430 に答える