4

私は C# のエラスティック検索で遊んでいます。JSON にシリアル化された C# の匿名型を使用してクエリを作成したいと考えていました。しかし、一部で次のような JSON が必要なため、問題が発生しました。

{"bool": {<unimportant for question>}}

これは、bool という名前のフィールドを持つ ac# クラスに変換されます。これは可能ですか?(私の推測ではノーです...)

カスタムのシリアライゼーションが必要になると思います。または、エラスティック検索が bool の別の名前を提供するかもしれません。

4

3 に答える 3

5

変数にキーワードと同じ名前を付けたい場合は、前に@.

ブール@ブール=偽;

可能な限り、すべての状況でこれを行うことは避けます。紛らわしいだけです。

于 2012-10-21T19:52:06.700 に答える
2

属性に名前を設定でき[DataMember]ますが、実際のクラス (匿名ではない) を使用する必要があります。

using System;
using System.Collections;
using System.IO;
using System.Runtime.Serialization;
using System.Xml;

// You must apply a DataContractAttribute or SerializableAttribute 
// to a class to have it serialized by the DataContractSerializer.
[DataContract()]
class Enterprise : IExtensibleDataObject
{

    [DataMember(Name = "bool")]
    public bool CaptainKirk {get; set;}

    // more stuff here
}

詳細情報: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.datamemberattribute.aspx

于 2012-10-21T19:58:39.517 に答える
1

DateMember属性を使用して、シリアル化された名前を指定します。

[DataMember(Name = "bool")]
public string MyBoolean { get; set; }

参照: JavaScriptSerializer.Deserialize - フィールド名の変更方法

于 2012-10-21T19:58:29.173 に答える