시도 추가 [ScriptMethod (ResponseFormat = ResponseFormat.Json)] 등처럼의 WebMethod 아래 :
대신 포맷 된 객체의 웹 서비스에서 반환 다음
[WebService(Namespace="my.soap")]
public class StockQuote : WebService
{
[WebMethod(Description="",EnableSession=false)]
public ResultSet IBM()
{
JavaScriptSerializer serializer = new JavaScriptSerializer();
string json = "{\"ResultSet\":{\"Query\":\"ibm\",\"Result\":[{\"symbol\":\"IBM\",\"name\": \"International Business Machines Corp.\",\"exch\": \"NYQ\",\"type\": \"S\",\"exchDisp\":\"NYSE\",\"typeDisp\":\"Equity\"},{\"symbol\":\"IBM.F\",\"name\": \"IBM\",\"exch\": \"FRA\",\"type\": \"S\",\"exchDisp\":\"Frankfurt\",\"typeDisp\":\"Equity\"},{\"symbol\":\"IBM.DE\",\"name\": \"IBM\",\"exch\": \"GER\",\"type\": \"S\",\"exchDisp\":\"XETRA\",\"typeDisp\":\"Equity\"},{\"symbol\":\"^AXI\",\"name\": \"Stlmt ID - NASDAQ OMX Alpha IBM\",\"exch\": \"NAS\",\"type\": \"I\",\"exchDisp\":\"NASDAQ\",\"typeDisp\":\"Index\"},{\"symbol\":\"^IVSPY\",\"name\": \"NASDAQ OMX Alpha IBM vs. SPY\",\"exch\": \"NAS\",\"type\": \"I\",\"exchDisp\":\"NASDAQ\",\"typeDisp\":\"Index\"},{\"symbol\":\"IBMSX\",\"name\": \"Invesco Multi-Sector B\",\"exch\": \"NAS\",\"type\": \"M\",\"exchDisp\":\"NASDAQ\",\"typeDisp\":\"Fund\"},{\"symbol\":\"IBM.BE\",\"name\": \"IBM\",\"exch\": \"BER\",\"type\": \"S\",\"exchDisp\":\"Berlin\",\"typeDisp\":\"Equity\"},{\"symbol\":\"IBM.SG\",\"name\": \"IBM\",\"exch\": \"STU\",\"type\": \"S\",\"exchDisp\":\"Stuttgart\",\"typeDisp\":\"Equity\"},{\"symbol\":\"IBM.BA\",\"name\": \"International Business Machines Corp.\",\"exch\": \"BUE\",\"type\": \"S\",\"exchDisp\":\"Buenos Aires\",\"typeDisp\":\"Equity\"},{\"symbol\":\"IBM.L\",\"name\": \"International Business Machines Corp.\",\"exch\": \"LSE\",\"type\": \"S\",\"exchDisp\":\"London\",\"typeDisp\":\"Equity\"}]}}";
return serializer.Deserialize<ResultSet>(json);
}
}
[Serializable]
public class ResultSet
{
public string Query;
public ResSet[] Result;
}
[Serializable]
public class ResSet
{
public string symbol;
public string name;
public string exch;
public string type;
public string exchDisp;
public string typeDisp;
}
내가 갖는
[WebMethod(Description="",EnableSession=false)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
디버거를 사용하여 JSON URL의 형식이 올바른지 확인하거나 반환되는 실제 JSON 데이터를 보았습니까? 나는 [웹 개발 도우미] (http://projects.nikhilk.net/WebDevHelper)를 사용하지만 몇 가지 다른 것들이있다. – WEFX
그것이 도움이되는지 확인하기 위해 체크 아웃해야 할 것입니다. 이전에 디버깅 도구를 살펴 보았지만 사용할 수있는 옵션은 없었습니다.메모장을 사용하여 디버깅 옵션이 제한된이 웹 서비스를 만들었습니다. Visual Web Developer Express로 이동할 수 있는지 확인해야합니다. – Doug
@ user745588 : 제대로 포맷되었으므로 온라인 [JSON validator] (http://jsonformatter.curiousconcept.com/)을 사용하여 확인했습니다. 문제는 클래스에 'PropertySet'이라는 ** 속성 **이 없다는 것입니다 ([대답] (http://stackoverflow.com/questions/5940528/c-asp-net-web-service-trying 참조). -to-deserialize-json-and-getting-empty-object/5940709 # 5940709)를 참조하십시오. – Groo