2015-02-03 5 views
0

extJs 3.2.x에서 작업 중입니다.문자열을 json으로 반환합니다.

문자열을 반환하는 간단한 함수가 있습니다.

public Object getRevenueCurrency(....) { 
    return "USD"; 
} 

JSON에 응답 유형을 매핑하는 Jackson mapper가 있습니다. 데이터를 검색하려고 시도

<bean name="jsonView" class="org.springframework.web.servlet.view.json.MappingJacksonJsonView"> 
     <property name="contentType"> 
      <!-- <value>application/json</value> --> 
      <value>text/html</value> 
     </property> 
    </bean> 

은 다음과 같이 진행됩니다

{"string": "USD"} 

나는 아무 서버 나 JS 예외가 없지만 예외 :

currencyStore = new Ext.data.JsonStore({ 
id:'currencystore', 
url: 'xxxxxxx?action=getcurrency', 
root: 'string',   
listeners: {load: function(store) { 
     rev_currency=store.?????; 
    } 
} 
}); 
currencyStore.on('exception',function(store, records, options){ 
alert('Exception was called'); 
},this); 

피들러가 같은 서버에서 응답을 보여줍니다 경고가 호출됩니다.

1. 통화 가치를 추출하려면 어떻게해야합니까?
2. 위의 예외 처리기에서 예외에 대한 의미있는 정보를 추출하는 방법은 무엇입니까?

답변

0

난 당신이 상점에있는 모든 필드를 구성하지 않은 통지, 그래서 독자가 걸리는 경우를하다 귀하의 json respsonse는 'string'이라는 필드를 찾으려고 시도합니다. 나는 또한이

currencyStore = new Ext.data.JsonStore({ 
id:'currencystore', 
url: 'xxxxxxx?action=getcurrency', 
fields: ['string'],   
listeners: {load: function(store, records, options) { 
     rev_currency=store.?????; 
    } 
} 
}); 

참고 : -

가 JsonStore에 대한 ExtJS3의 문서를 살펴 보자처럼> http://docs.sencha.com/extjs/3.4.0/#!/api/Ext.data.JsonStore

샘플 설정이 필드를 정의하는 방법을 보여줍니다, 그래서 당신의 가게가 보일 것입니다 매개 변수를로드 함수 핸들러로 변경하여 레코드를 사용하여 json에서 생성 한 새 레코드에 액세스 할 수 있습니다. [0]

0

루트 등록 정보를 설정하여 저장소를 구성했습니다. 즉, 상점 판독기가 'string'과 일치하는 json에서 루트 노드를 기다리고 있음을 의미합니다.

그래서 독자는 실제로 아래의 응답 형식을 기대합니다.

{"string":[{"propertyname":"USD"}]} 

대신 그냥 반환되는 것 모두 이후 상점 설정에 루트 속성을 꺼낼 수있는 것은 평면 객체

+0

루트 속성을 가져 오면 예외도 방지되지 않습니다. 예외가 무엇인지 어떻게 알 수 있습니까? – IUnknown

1

두 번째 질문 :

2. 위의 예외 처리기에서 예외에 대한 의미있는 정보를 추출하는 방법은 무엇입니까? docs for the exception event 서명 및 매개 변수에 따르면

은 다음과 같습니다 매개 변수를 검사하여

exception(store, type, action, options, response, arg) 

(예를 들어 CONSOLE.LOG에 의해 (...)) 당신은 몇 가지 유용한 정보를 검색합니다.