2012-03-21 4 views
1

JSON 메타 데이터를 통해 ExtJS를 재구성하는 작업에서 열을 다시 구성하는 과정에서 일부 JavaScript 함수를 제공해야한다는 사실을 알게되었습니다.JSON 응답에 "문자열화 된"값이 없을 수 있습니까?

함수가 따옴표로 묶여 있으면 함수가 함수로 해석되지 않으므로 따옴표가없는 값을 가진 JSON을 반환 할 수 있습니까?

이상적으로는

{"d":{ 
    "metaData": { 
     "root": "d.data", 
     "fields": [{ 
      "type": "date", 
      "name": "Date", 
      -->"renderer": formatDate, 
      "dateFormat": "c", 
      "convert": function (newValue, model) { 
        return Ext.Date.parse(newValue, "MS");<-- 
       }, 
      "header": "Date", 
      "dataIndex": "Date" 
     }, { 
      "type": "string", 
      "name": "Notes", 
      "header": "Notes", 
      "dataIndex": "Notes" 
     }, {... 

나는 또한 C#을 함께 일하고 있어요 뭔가를 할 것이다, 그래서 Dictionary<string,object>로 JSON을 반환?

+0

수 없습니다. http://stackoverflow.com/questions/2001449/is-it-valid-to-define-functions-in-json-results와 중복됩니다. –

+0

아, 슬픈 일입니다. 문제 없습니다, 나는 방금 날짜로 문자열을 출력했습니다! 내가 그것을 표시 할 수 있도록 당신의 대답을 답으로 써 주시겠습니까 :) – MHTri

답변

0

엄밀히 말하면, Json은 기능을 가질 수 없습니다. 그러나, 당신은 문자열로 저장할 수 있습니다 후 '평가'는

... 
"convert": "function (newValue, model) { return Ext.Date.parse(newValue, 'MS'); }", //As a string 
... 

그럼 당신은이 (캐릭터 라인 기능은 convert VAR에 가정)을 실행 할 거라고 :

var func = eval('(' + convert +')'); 
alert(func(3, 5)); //Just call it as a normal function now. 

희망이 도움이됩니다. 건배.

+0

안녕, 고마워. ExtJS에 대한 경험이 있습니까? 평가 된 기능을 언제 어디서 실행할 것인지 잘 모르겠습니다. – MHTri

관련 문제