Я новичок в использовании JSON и в настоящее время играюсь с графиком FLOT для отображения графика через WebView.
http://rapidandroid.org/wiki/Graphing
Однако, когда дело доходит до синтаксического анализа JSON, у меня возникают проблемы с представлением моих данных в виде эквивалента JavaScript. Я играл с этим часами, и у меня не получается, чтобы мой вывод в формате JSON выглядел следующим образом.
var datasets = {
"Symptoms": {
label: "Symptoms",
data: [[1988, 10], [1989, 20], [1990, 10], [1991, 30], [1992, 40]]
},
"Reactions": {
label: "Reactions",
data: [[1988, 0], [1989, 0], [1990, 10], [1991, 30], [1992, 40]]
},
"Injections": {
label: "Injections",
data: [[1988, 0], [1989, 0], [1990, 0], [1991, 30], [1992, 40]]
},
};
Использование интерпретации Дэвидом графа флота
http://w2davids.wordpress.com/android-charts-the-html5-and-javascript-way/
Заранее спасибо.
P.s. самое близкое, что я получил:
Строковые данные = «[0,1], [5,3], [5,6], [7,2], [10,12]»;
arr.put (данные);
поставь проблему так:
{"data": ["[0,1], [5,3], [5,6], [7,2], [10,12]"]} // как мне избавиться от .. " ..
также как я могу получить метку: в объекте JSON? также без кавычек
Решение
Передача объекта json из Android в javascript (например, веб-просмотр)
Хорошо для тех, кто использует библиотеку flot javascript для отображения
график в андроид
Java Activity
String json = "{"
+ " \"Symptoms\":"
+ "{ \"label\": \"Symptoms\","
+ " \"data\": [[1988, 10], [1989, 20], [1990, 10], [1991, 30], [1992, 40]] "
+ "},"
+ " \"Infections\":"
+ "{ \"label\": \"Infections\","
+ " \"data\": [[1988, 0], [1989, 0], [1990, 10], [1991, 35], [1992, 28]] "
+ "}"
+ "}";
mAppView.loadUrl("javascript:GotGraph('"+json+"');");
Сторона Javascript (FLOT) (допускает несколько строк
function GotGraph(data) {
var datasets = JSON.parse(data);
// hard-code color indices to prevent them from shifting as
// countries are turned on/off
var i = 0;
$.each(datasets, function(key, val) {
val.color = i;
++i;
});
// insert checkboxes
var choiceContainer = $("#choices");
$.each(datasets, function(key, val) {
choiceContainer.append('<br/><input type="checkbox" name="' + key +
'" checked="checked" id="id' + key + '">' +
'<label for="id' + key + '">'
+ val.label + '</label>');
});
choiceContainer.find("input").click(plotAccordingToChoices);
//
function plotAccordingToChoices() {
var data = [];
choiceContainer.find("input:checked").each(function () {
var key = $(this).attr("name");
if (key && datasets[key])
data.push(datasets[key]);
});
if (data.length > 0)
$.plot($("#placeholder"), data, {
yaxis: { min: 0 },
xaxis: { tickDecimals: 0 }
});
}
plotAccordingToChoices();
}
Благодаря
http://rapidandroid.org/wiki/Graphing
http://w2davids.wordpress.com/android-charts-the-html5-and-javascript-way/
и @ achie