Принятый ответ Бобинса - это короткое портативное решение. Если вам нужно не только добавлять SVG, но и манипулировать им, вы можете попробовать библиотеку JavaScript «Pablo» (я ее написал). Он будет хорошо знаком с пользователями jQuery.
Пример вашего кода выглядел бы так:
$(document).ready(function(){
Pablo("svg").append(' ');
});
Вы также можете создавать элементы SVG «на лету» без указания разметки:
var circle = Pablo.circle({
cx:100,
cy:50,
r:40
}).appendTo('svg');
JObject.Parse()
ожидает фактическое содержимое JSON (строка), а не путь.
Ваш JSON действительно представляет собой массив, чтобы вместо этого использовать JArray.Parse()
. Кроме того, преобразование строки JSON в JObject
, а затем назад ToString()
действительно не добавляет здесь никакого «значения».
Это должно сделать это.
string json = File.ReadAllText(HttpContext.Current.Server.MapPath("~/testing/testData.json"));
var result = JsonConvert.DeserializeObject<List<orResult>>(json);
Вы пытаетесь десериализовать переведенный путь («c: \ whatever \ ... \ testing \ testData.json»), который возвращает MapPath , то есть не содержимое файла.
Попробуйте что-то вроде этого:
JObject jsonData = JObject.Parse(File.ReadAllText(path));
... но опять же нет необходимости использовать Parse()
, поскольку вам не нужно JObject
. Просто десериализуйте непосредственно на List<orResult>
:
var result = JsonConvert.DeserializeObject<List<orResult>>(File.ReadAllText(path));
JToken.ReadFrom()
, можно напрямую передать файл из файла, не загружая промежуточное строковое представление. – dbc 2 September 2015 в 20:33