2012-02-15 5 views
2

JavaScriptSerializerを使用してJson Objectでシリアル化するKeyPairValueのリストがあります。この操作の出力は次のように私に何かを与える: カスタムJsonのシリアル化

[{ Key:"A", Value:"ValueA"},{ Key:"D", Value:"ValueD"}] 

があります:

[{"Key":"A","Value":"ValueA"},{"Key":"D","Value":"ValueD"}] 

I'ldが、それは次のようになりますように、プロパティ名を中心に「」それらを取り除くのが好きこれを達成する方法、または私が探しているものがJsonのシリアル化ではない場合

+0

私はJSONの方がXMLよりも好きです。なぜなら、読みやすく、書くのが簡単だからです。しかし、キーのための** "" **はとても苦痛です。 – brgerner

+0

、つまりjsonは欲しくないですか? – CodesInChaos

答えて

2

あなたはJson.Net

StringWriter str = new StringWriter(); 
JsonTextWriter writer = new JsonTextWriter(str); 
writer.QuoteName = false; //<-- This is the trick 
JsonSerializer jsonSer = new JsonSerializer(); 
jsonSer.Serialize(writer, new { ID = 1, Name = "Jack" }); 

string jsonstr = str.ToString(); 

出力が{ID:1,Name:"Jack"}

+0

まさに私が必要としていたものはたくさんありました! –

+0

レコードの場合:生成された出力はポスターが要求したものですが、有効なJsonではありません(他の回答にも記載されています)。多くのJsonコンシューマはこの文字列を受け入れたり処理したりしません。あなたは本当にそれがもうではないので、それをJsonとして参照するべきではありません。 – Eddy

+0

@Eddy、OK。私は今から* Myon *(My Object Notation) –

1

私は知っているように、あなたのキーをJSONに埋め込む必要があります。これは、JSONは実際にはJavaScriptオブジェクトのトランスポート形式であるため、いくつかの詳細があります。

0

あるとそれを達成することができRFCは、名前が文字列であることを指定し、それはまた、文字列は引用符でラップしなければならないことを指定します。

RFC 4627

それは値をすることができ、種類の一部が引用符でラップする必要がないこと、異なるタイプのは注目に値します。これは仕様でも見つけることができます。

関連する問題