On Sunday, November 20, 2011 5:39:04 PM UTC+1, jogo wrote: > > Hi Thomas, > > > Any reason you're not coding this directly in JSNI, without the eval()? > Great point. I was able to fix one JSNI function (mentioned above) > that just gets the title & id with the solution you suggested. Thank > you. > > But unfortunately, there is one even more complex method, that gets > data from Google Spreadsheet feed and here I have to use the "evil" > function. These feeds are quite complex and keys in these feeds are > dynamically generated based on the names of columns in a spreadsheet. > > Here is an example JSON feed: > > https://spreadsheets.google.com/feeds/list/o03712292828507838454.6243940683656382600/od6/public/values?alt=json > > If you check that feed you will notice, that keys where are stored > spreadsheet values are prefixed with 'gsx' + name of the column. There > are three columns in the spreadsheet - year, revenue and profit and > three corresponding JSON keys gsx$year, gsx$revenue and gsx$profit. > > My code looks like this: > public static native String parseSpreadsheetFeed(String json) /*-{ > if (json != null) { > var obj = JSON.parse(json); > var entries = obj.feed.entry; > > // iterate over entries > for (var i in entries) { > > // iterate over keys > for (var j in entries[i]) { > var prefix = j.split('$')[0]; > > // process only keys prefixed with 'gsx' > if (prefix == 'gsx') { > eval('var data = obj.feed.entry[' + i + '].' + > j + '.$t'); > ... > > And here I can't just replace the eval method with: > var data = obj.feed.entry[i].j.$t; > > That wouldn't work. >
var data = obj.feed.entry[i][j].$t; > -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To view this discussion on the web visit https://groups.google.com/d/msg/google-web-toolkit/-/gChaVP41OcwJ. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
