From: <tob...@us...> - 2014-03-11 05:23:20
|
Revision: 7923 http://sourceforge.net/p/bigdata/code/7923 Author: tobycraig Date: 2014-03-11 05:23:16 +0000 (Tue, 11 Mar 2014) Log Message: ----------- #829 - Added JSON export Modified Paths: -------------- branches/RDR/bigdata-war/src/html/js/workbench.js Modified: branches/RDR/bigdata-war/src/html/js/workbench.js =================================================================== --- branches/RDR/bigdata-war/src/html/js/workbench.js 2014-03-11 05:20:26 UTC (rev 7922) +++ branches/RDR/bigdata-war/src/html/js/workbench.js 2014-03-11 05:23:16 UTC (rev 7923) @@ -45,7 +45,7 @@ /* Namespaces */ function getNamespaces() { - $.get('/namespace', function(data) { + $.get('/bigdata/namespace', function(data) { $('#namespaces-list').empty(); var rdf = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'; var namespaces = namespaces = data.getElementsByTagNameNS(rdf, 'Description') @@ -109,7 +109,7 @@ $('#namespace-create').submit(createNamespace); function getDefaultNamespace() { - $.get('/sparql', function(data) { + $.get('/bigdata/sparql', function(data) { // Chrome does not work with rdf\:Description, so look for Description too var defaultDataset = $(data).find('rdf\\:Description[rdf\\:nodeID=defaultDataset], Description[rdf\\:nodeID=defaultDataset]'); DEFAULT_NAMESPACE = defaultDataset.find('title')[0].textContent; @@ -393,6 +393,7 @@ }); $('#query-export-csv').click(exportCSV); +$('#query-export-json').click(exportJSON); $('#query-export-xml').click(exportXML); function exportXML() { @@ -430,6 +431,44 @@ downloadFile(xml, 'application/sparql-results+xml', 'export.xml'); } +function exportJSON() { + var json = {} + if($('#query-response table').hasClass('boolean')) { + json.head = {}; + json['boolean'] = $('#query-response td').text(); + } else { + json.head = {vars: []}; + $('#query-response thead tr td').each(function(i, td) { + json.head.vars.push(td.textContent); + }); + json.bindings = []; + $('#query-response tbody tr').each(function(i, tr) { + var binding = {}; + $(tr).find('td').each(function(j, td) { + var bindingFields = {} + var bindingType = td.className; + if(bindingType == 'unbound') { + return; + } + bindingFields.type = bindingType; + var dataType = $(td).data('datatype'); + if(dataType) { + bindingFields.type = dataType; + } + var lang = $(td).data('lang'); + if(lang) { + bindingFields.lang = lang; + } + bindingFields.value = td.textContent; + binding[json.head.vars[j]] = bindingFields; + }); + json.bindings.push(binding); + }); + } + json = JSON.stringify(json); + downloadFile(json, 'application/sparql-results+json', 'export.json'); +} + function exportCSV() { // FIXME: escape commas var csv = ''; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |