2012-03-21 5 views
1

JSONメタデータを使用してExtJSを再構成する作業で、列の再構成の一環としてJavaScript機能をいくつか提供する必要があることがわかりました。JSONレスポンスに "文字列化された"値がない可能性がありますか?

関数が引用符で囲まれていると関数が関数として解釈されないため、引用符で囲まれていない値を持つJSONを返すことは可能ですか?

理想的には私は、私はまた、Cの#で働いているので、私はDictionary<string,object>として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" 
     }, {... 

のようなものを持っているでしょうか?

+0

できません。 http://stackoverflow.com/questions/2001449/is-it-valid-to-define-functions-in-json-resultsと重複しているようです。 –

+0

ああ、それは悲しいことです。問題はありませんが、私は文字列として日付を出力しました!私はそれをマークすることができるように答えとしてあなたのコメントを置くことができます:) – MHTri

答えて

0

厳密に言えば、Jsonは機能を持つことができません。しかし、あなたはそれを文字列として保存することができ、その後、「evalの」それは

... 
"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

関連する問題