2016-03-15 50 views
50

如何在C#中聲明屬性或變量名稱爲fg+如何在C#中將「+」添加到屬性名稱?

public string fg+ { get; set; } 

我從JSON作爲"fg+": "103308076644479658279"響應越來越fg+作爲一個字段。

我使用類反序列化它。我如何從JSON中讀取它?

+10

@ChrisCirefice:有人誰預期值與'OBJ [」訪問key「]'語法而不是'obj.key'。 – dan04

+6

@ dan04當然,但如果您使用像Google GSON這樣的JSON庫將JSON映射到Java對象或Json.NET for C#,那麼您通常會因爲很多奇怪的例外*原因。是的,JSON鍵可以是字符串,但是這不應該阻止創建JSON的人在考慮誰必須*解析它時使用。在我看來,最好避免用作*標識符*的事物的特殊符號。我絕不會創造出這樣奇怪的JSON,除非我故意試圖讓人們失望。 –

+0

以下是有關var名稱中允許的內容的規範:https://msdn.microsoft.com/en-us/library/aa664670.aspx –

回答

118

這樣的變量名在C#中不合法。

如果您使用Json.NET反序列化數據,您可以使用JsonProperty屬性給它一個定義名稱:

[JsonProperty("fg+")] 
public string Fg { get; set; } 
+5

你的回答是正確的..但我認爲'鍵值對'字典將在c#中支持它。 –

+50

@PankajParkar嗯,他的問題不是*「我怎樣才能將我的JSON一般反序列化成一個'Dictionary '」*,他想知道如何將它直接反序列化到一個屬性*。當然,前者是可能的。 –

相關問題