5

Json オブジェクトを C# に変換しているときに、Json に $ 記号 (例: $t) を含むフィールドがあるという問題が発生しました。しかし、c# は特殊文字を含むフィールドを受け入れません。C# コードで $ を他の文字に置き換えようとすると、名前が変更されたため、サード パーティからデータを取得できません。

この問題を解決するにはどうすればよいですか?

Json 文字列:

"author": [(1)
{
"name": {
"$t": "theabctv"
},-
"uri": {
 $t": "http://gdata.abc.com/feeds/api/users/theabctv"
},-
"yt$userId": {
"$t": "tCUABCCT7wYG1PMCpw"
}-
}-
],-

C# コード:-

public class Author2

{

public Name2 name { get; set; }
public Uri2 uri { get; set; }
public YtUserId __invalid_name__yt$userId { get; set; }
}
public class Name2
{
public string __invalid_name__$t { get; set; }
}

public class Uri2
{
public string __invalid_name__$t { get; set; }
}

public class YtUserId
{
public string __invalid_name__$t { get; set; }
}
4

1 に答える 1

2

NET フレームワークでシンボルを使用してプロパティ名を宣言する方法はありません。つまり、JSON データを解析しないと、JSON オブジェクトと C# オブジェクトの間で同型性を持つことはできません。すべての $ 記号を特定の文字列 (慎重に選択) に置き換え、コード ビハインドでデータを管理し、オブジェクトの JSON データを送信する必要がある場合は、逆置換を適用できます。

于 2012-12-09T04:05:14.777 に答える