.Net 4:如何引用名为"return"的属性的动态对象

AyK*_*rsi 10 c# json .net-4.0

我正在从公共API检索json并使用JsonFx将其转换为动态对象.

JsonFx.Json.JsonReader reader = new JsonFx.Json.JsonReader();
dynamic response = reader.Read(jsonAsString);
Run Code Online (Sandbox Code Playgroud)

json包含一个名为return的属性.例如

{"result":"success","return":{"high":{"value":"3.85001","value_int":"385001","display":"3.85001\u00a0\u20ac","currency":"EUR"}}
Run Code Online (Sandbox Code Playgroud)

JsonFx可以很好地创建动态对象,我也可以调试它并查看值.问题是,当我尝试在我的代码中引用该属性时,编译器会抱怨:

response.return.high.currency
Identifier expected; 'return' is a keyword  
Run Code Online (Sandbox Code Playgroud)

如何在没有编译器抱怨的情况下引用return属性?

Sam*_*ich 15

试试response.@return.high.currency.

您需要@在名称与C#关键字相同的任何字段的开头附加.

  • 顺便说一下,使用`@`来转义C#中的关键字的Visual Basic等价物是用方括号括起关键字.例如,你可以说"Dim [Next] as String"来声明一个名为Next的变量.很方便知道你是否也在VB中使用这些不寻常的对象. (3认同)