我正在寫一個Windows應用商店應用(Win Phone 8.1)。在c中有兩個同名的成員#
我有一個發送請求到服務器,並給出了迴應:
C#:
public class Request
{
public PWSESSIONRS PWSESSIONRS { get; set; }
}
public class Response
{
public List<PWSESSIONR> PWSESSIONRS { get; set; }
}
public class PWSESSIONRS
{
public PWPROCESSRS PWPROCESSRS { get; set; }
}
public class PWPROCESSRS
{
public PWERROR PWERROR { get; set; }
public PWHEADER PWHEADER { get; set; }
public PWDATA PWDATA { get; set; }
}
public class PWDATA
{
public GETBIKEDETAIL GETBIKEDETAIL { get; set; }
public MOBAUTH MOBAUTH { get; set; }
}
public class MOBAUTH
{
//Request:
public List<Row> Row { get; set; }
//Response:
public Row Row { get; set; }
}
它顯示錯誤:
The MOBAUTH already contains a definition for Row
現在,如果我這樣做這個:
public class MOBAUTH
{
//Request:
[JsonProperty("Row")]
public List<Row> Row { get; set; }
//Respnse:
[JsonProperty("Row")]
public Row Row_ { get; set; }
}
它顯示運行時錯誤:
An exception of type 'Newtonsoft.Json.JsonSerializationException' occurred in Newtonsoft.Json.DLL but was not handled in user code Additional information: A member with the name 'Row' already exists on 'MyApp.Model.Request.MOBAUTH'. Use the JsonPropertyAttribute to specify another name.
JSON請求:
{"PWSESSIONRS":{"PWPROCESSRS":{"PWERROR":null,"PWHEADER":{"DEVICE_LONGITUDE":"77.044510","PROCESS_ID":"","LOGIN_ID":"FiZqnXB4y0u4WNTYG2UXxw==","USER_ID":"FiZqnXB4y0u4WNTYG2UXxw==","IMEI_NO":"64C267E1-545D-4A2B-B726-60F332B18F44","DEVICE_MODEL":"","VERSION_ID":"1.0","PW_SESSION_ID":"3tyEwspAMHj9FvWQzSecuq/7DQMDw0MalYiPIXWaFvg=","DEVICE_LATITUDE":"28.412745","INSTALLATION_ID":"8QO8FLBU1GGEUCIHI44R+A/7DQMDW0MALYIPIXWAFVG=~HCA~614","SESSION_EXPIRE_TIME":"","ORG_ID":"HCA","APP_ID":"HCA","PW_VERSION":"","LOCATION":"","USER_SESSION_ID":"FFv4JAm8bpHauIahnRgs9ZW2ypH7NE41Dz9OZBIXJWnBiR/VRj3yaAmRx+SeZtyc","OS_VERSION":"","SERVER_TIMESTAMP":"","DEVICE_MAKE":"","OUT_PROCESS_ID":"MOBAUTH","SIM_ID":"","PW_CLIENT_VERSION":"3.1","PASSWORD":"FiZqnXB4y0u4WNTYG2UXxw==","DEVICE_TIMESTAMP":"2016-07-23 16:54:09","IS_AUTH":"","LAC":"","MCC":"","MNC":"","CID":"","LAST_TRANSACTION_ID":"","IN_PROCESS_ID":null},"PWDATA":{"GETBIKEDETAIL":null,"MOBAUTH":{"Row":[{"x_VIN":null,"x_phone_no":null,"x_reg_no":null,"x_mobile_no":"9988887777","MessageSource":null,"DetailMessage":null,"DataElements":null,"Message":null,"MsgID":null,"RefID":null,"MessageType":null}]}}}}}
JSON響應:
{
"PWSESSIONRS": [
{
"PWPROCESSRS": {
"PWERROR": {
"MOBAUTH": {
"Row": {
"MessageSource": "PLATWARE",
"DetailMessage": "JSONObject[\"x_reg_no\"] not a string.",
"DataElements": "",
"Message": "Please pass valid JSON Data for Process.",
"MsgID": "plat029",
"RefID": "MOBAUTH",
"MessageType": "Error"
}
}
},
"PWHEADER": {
"DEVICE_MODEL": "",
"IMEI_NO": "64C267E1-545D-4A2B-B726-60F332B18F44",
"VERSION_ID": "1.0",
"DEVICE_LATITUDE": "28.412745",
"INSTALLATION_ID": "8QO8FLBU1GGEUCIHI44R+A/7DQMDW0MALYIPIXWAFVG=~HCA~614",
"APP_ID": "HCA",
"IS_AUTH": "Y",
"PW_VERSION": "",
"OS_VERSION": "",
"DEVICE_MAKE": "",
"OUT_PROCESS_ID": "MOBAUTH",
"SIM_ID": "",
"PASSWORD": "",
"DEVICE_LONGITUDE": "77.044510",
"LOGIN_ID": "FIZQNXB4Y0U4WNTYG2UXXW==",
"USER_ID": "",
"PW_SESSION_ID": "3TYEWSPAMHJ9FVWQZSECUQ/7DQMDW0MALYIPIXWAFVG=",
"SESSION_EXPIRE_TIME": "",
"ORG_ID": "HCA",
"LOCATION": "",
"IN_PROCESS_ID": "MOBAUTH",
"USER_SESSION_ID": "FFV4JAM8BPHAUIAHNRGS9ZW2YPH7NE41DZ9OZBIXJWNBIR/VRJ3YAAMRX+SEZTYC",
"SERVER_TIMESTAMP": "2016-07-23 18:46:01",
"PW_CLIENT_VERSION": "3.1",
"DEVICE_TIMESTAMP": "2016-07-23 16:54:09"
},
"PWDATA": {
"MOBAUTH": ""
}
}
}
]
}
目前仍不清楚爲什麼你有兩個屬性需要調用'Row',或者爲什麼你希望它們都使用'Row'的JSON屬性。請澄清你的問題。 (除了其他任何東西,它看起來像第一個屬性*應該被稱爲「行」,因爲它是一個列表...)(我還*強烈*建議您將所有類名更改爲可讀性並按照.NET命名約定。) –
它的服務器接收json並以一種格式發送迴應答。只是JSON請求中的MOBAUTH與json響應的區別 –
恐怕沒有使它更清晰。 –