2012-04-30 11 views
11

私はC#を完全に新しくしており、すでに頭痛を抱えています。私はこれはおそらくあなたに子供のものだと知っていますが、私は時間+ googleingを費やしてきたし、それを動作させるように見えることはできません。キー/値を持つ配列をJSONに変換する方法C#

私がしようとしているのは、配列をJSONに変換することだけです。

$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"}

さて、私はまさにそれをやろうとしている、私はここで私は(PHPで)やろうとしているものの例ですが、うまくPHPを知っていますしかし、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を、使用しています:

The type or namespace name 'JavaScriptSerializer' could not be found (are you missing a using directive or an assembly reference?)

上の任意のアイデア私がここで間違っているのは何ですか?ありがとう

答えて

27

正しいusingのステートメントはありませんか? 、正しくフォーマットJSONを取得するために使用する代わりにDictionary

using System.Web.Script.Serialization;

EDIT:あなたのファイルの先頭に以下を追加します。

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

JavaScriptSerializer js = new JavaScriptSerializer(); 
string json = js.Serialize(keyValues); 
MessageBox.Show(json); 
+4

を与えますデフォルトで)。 [fastJSON](http://www.codeproject.com/Articles/159450/fastJSON)のようなものを使うこともできます。 JavaScriptSerializerを使用するよりも、オブジェクトをシリアライズする方が簡単で高速です。 – erodewald

+1

エラーが発生しました: '型または名前空間の名前 'Script'が 'System.Web'という名前空間に存在しません(アセンブリ参照がありませんか?)' thanks xD –

+1

@nav_nav Hmm、strange。 pre .NET 3.5を使用していますか? – mattytommo

14

をどのようにJSON.NETとjオブジェクトの使用についてクラス?リサイズやWPFプロジェクトがそれを持っていないでしょう。

var obj = new JObject(); 

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

var serialized = JsonConvert.SerializeObject(obj); 

これは、あなたがそれを参照(すなわちとして読み込まれていない場合にはSystem.Web.Extensions.dllであるあなたに

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

これで、 'JObject '型または名前空間名が見つかりませんでした(使用するディレクティブまたはアセンブリ参照がありませんか)' 'JsonConvert'という名前が現在のコンテキストに存在しません ' –

+2

json.netライブラリを追加しましたか? - > http://json.codeplex.com/ – MUG4N

+0

* JObjectが見つからない*場合は、 'Newtonsoft.Json.Linq;を使用して'を追加する必要があります。としょうかん。 – Fil

関連する問題