我正在使用JSON API。由於c#不接受像 - (減號)或。 (點),我不得不用_(下劃線)代替每個字符。當JSON響應作爲字符串接收時,會發生替換,以便每個包含 - 或a的屬性名稱。將它替換爲_,那麼每個屬性名稱將與它將被反序列化到的類中的屬性名稱相同。智能替換字符串
使其更清晰,下面是一些例子:
我收到以下JSON:{ "id": 1, "result": [ { "data": [ { "adm-pass": ""}]}
在我想反序列化類爲我有這樣的屬性:public String adm_pass {get; set;}
所以我更換了與減一個下劃線,以便NewtonSoft解析器可以相應地反序列化它。
我的問題是,我有時我在我的JSON中得到一些負整數。因此,如果我在{"beta" : -1}
中執行字符串替換,我會得到解析異常,因爲-1(此處爲整數)變爲_1,無法正確反序列化並引發異常。
有沒有辦法巧妙地替換字符串,以便我可以避免此錯誤? 例如,如果 - 後跟int,則不會被替換。 如果這種方式不存在,是否有解決這類問題的方法?
這很酷。我想知道微軟的DataContractJsonSerializer是否有類似的東西。我看了一下,它有一種方法可以用[DataMember(Name =「user_id」)]來更改名稱,但是我找不到它是否支持點(。)或破折號( - )。 – Rhyous
非常感謝,這解決了整個問題。 –
@Rhyous即使使用Microsoft的DataContractJsonSerializer,您也可以執行類似[DataMember(Name =「user-id」)]或[DataMember(Name =「user.id」)]的操作。這些支持 – Ferdin