5

当我将 Json 对象转换为 c# 时,我遇到了一个问题,其中我的 Json 有带有 $ 符号的字段(例如:$t)。但是 c# 不接受带有特殊字符的字段。如果我尝试用我的 c# 代码中的任何其他字母替换 $,由于命名更改,我无法从第 3 方获取数据。

我该如何解决这个问题?

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 回答