ODATA에서 json 형식을 반환하는 방법
ODATA에서 json을 반환할 수 있다는 것은 알지만 반환하기 위해 속성 또는 인터페이스를 사용해야 하는지 잘 모르겠습니다.
http://odata.netflix.com/Catalog/Titles?$format=JSON과 같이 하고 싶은데, Odata 서비스가 JSON을 반환하지 않습니다.www.foo.com/service?$format=json,과 같이 호출하면 XML만 반환됩니다.
ODATA에서 json을 반환하려면 어떻게 해야 하나요?
Fiddler를 다운로드하여 설치합니다.
http://www.fiddler2.com/fiddler2/
설치가 완료되면 Fiddler 오른쪽에 있는 "Request Builder" 탭을 클릭합니다.
다음 URL 삽입:
http://test.com/feed2/ODataService.svc/results
$format=J는 필요 없습니다.아들.
"Request Headers" 섹션에 다음 행을 삽입합니다.
accept: application/json
Fiddler 오른쪽 상단에 있는 큰 "Execute(실행)" 버튼을 누릅니다.
Fiddler 왼쪽에 추가된 요청 결과가 표시됩니다.
요청을 두 번 클릭합니다.Fiddler 오른쪽이 요청 결과를 볼 수 있는 "Inspectors" 탭으로 변경됩니다.
또한 Json을 사용하고 있기 때문에 Fiddler용 Json 뷰어 플러그인을 다운로드하여 설치하고 싶을 것입니다.
http://jsonviewer.codeplex.com/
새로운 버전의 WCF 데이터 서비스는 기본적으로 JSON을 지원하며, 이 기능은
Accept: application/json;odata=verbose
를 참조해 주세요.
Accept: application/json
더 이상 충분하지 않습니다.자세한 것은 이쪽.
아무도 당신의 질문에 깔끔하게 대답하지 않는 것 같아요!
HTML 페이지에서 다음 Javascript/JQuery 코드를 사용하여 WCF 데이터 서비스가 JSON 형식으로 데이터를 반환하도록 할 수 있습니다.
<script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
var sURL = "http://YourService.svc/Books(10)";
function testJSONfetch() {
$.ajax({
type: "GET",
contentType: "application/json; charset=utf-8",
datatype: "json",
url: sURL,
error: bad,
success: good,
beforeSend: function (XMLHttpRequest) {
//Specifying this header ensures that the results will be returned as JSON.
XMLHttpRequest.setRequestHeader("Accept", "application/json");
}
});
}
function good(response)
{
}
function bad(response)
{
}
</script>
요청 헤더 섹션에 "Accept: application/json"을 추가해야 합니다.
이 링크를 확인해 주세요.
데이터 서비스의 ODATA 프로바이더를 사용하고 있는 경우, 제공받은 샘플과 같이 URL에 ODATA를 지정하면 ODATA를 JSON으로 쉽게 반환할 수 있습니다.http://odata.netflix.com/Catalog/Titles?$format=JSON
그러기 위해서는 ADO에 대한 JSONp 및 URL 제어 형식 지원을 사용합니다.NET Data Services는 MSDN http://code.msdn.microsoft.com/DataServicesJSONP에서 다운로드하여 다음과 같이 JSONPSupportBehavior 데코레이터를 DataService 클래스에 추가합니다.
[JSONPSupportBehavior]
public class MyDataService : DataService<MyContextType>
{
...
http://test.com/feed2/ODataService.svc/results?$format=JSON을 사용하면 "The webpage cannot be find" (웹페이지를 찾을 수 없습니다)라고 표시됩니다.
$format=J는 필요 없습니다.우리당에서는 SON.
"http://test.com/feed2/ODataService.svc/results"만 사용하세요.
(Accept: 요청 헤더에 응용 프로그램/json 포함)
답변이 늦었지만, ODATA API를 컬링하여 결과를 json으로 반환하는 방법을 알아내려고 지난 한 시간 동안 노력했습니다.다음 코드는 문서를 json으로 가져와 파일에 씁니다.
-o myfile.html -H "Accept: application/json" http://example.com/api/data?$filter=name eq 'whatever'
...소문자만 사용합니다.
"format=json"
예쁘지는 않지만 요청 문자열에 $format을 사용하지 않고 JSON 출력을 강제로 실행한 방법은 다음과 같습니다.
Request r = new Request(Method.GET, "http://XXXXXXX.svc//Login"
+ "&UserId=" + "'" + "user" + "'"
+ "&Password=" + "'" + "password" + "'");
ClientInfo ci = r.getClientInfo();
ArrayList<Preference<MediaType>> accepted = new ArrayList<Preference<MediaType>>();
accepted.add(new Preference<MediaType>(MediaType.APPLICATION_JSON));
ci.setAcceptedMediaTypes(accepted);
Client client = new Client(Protocol.HTTP);
Response response = client.handle(r);
Representation output = response.getEntity();
언급URL : https://stackoverflow.com/questions/3468563/how-to-return-json-format-from-odata
'programing' 카테고리의 다른 글
시스템 기본 옵션을 글로벌하게 설정하는 방법.텍스트, Json.Json Serializer? (0) | 2023.03.26 |
---|---|
AngularJS 컨트롤러 상속 (0) | 2023.03.26 |
데이터 객체 배열을 json으로 변환 - Android (0) | 2023.03.26 |
jQuery 1.4.1에서 JSON stringify가 누락되었습니까? (0) | 2023.03.26 |
json을 사용하여 JSON을 디코딩하고 있습니다.언마샬 vs json.NewDecoder.디코드 (0) | 2023.03.26 |