Использование RequestHeaderMapping работает еще лучше, потому что оно также устанавливает Content-Type = application/json
в заголовке ответа, что позволяет Firefox (с надстройкой JSONView) отформатировать ответ как JSON.
GlobalConfiguration.Configuration.Formatters.JsonFormatter.MediaTypeMappings
.Add(new System.Net.Http.Formatting.RequestHeaderMapping("Accept",
"text/html",
StringComparison.InvariantCultureIgnoreCase,
true,
"application/json"));
Большинству популярных платформ JavaScript включали функции утилиты JSON. Например, jQuery имеет функцию, которая непосредственно называет URL и загружает результат JSON как объект: http://docs.jquery.com/Getjson
Однако можно получить синтаксический анализатор JSON с открытым исходным кодом и stringifier от json веб-сайт :
https://github.com/douglascrockford/JSON-js
Затем просто включайте код и используйте JSON.stringify () метод на Вашем массиве.
Вы могли использовать закодировать функцию эта библиотека .
Не уверен, что я полностью понимаю ваш вопрос, но если вы пытаетесь преобразовать объект в строку JSON, вы, вероятно, захотите посмотреть на встроенную поддержку JSON во всех новых браузерах. Вот сообщение Резига об этом. Для браузеров, которые еще не поддерживают его, попробуйте библиотеку json2.js . JSON.stringify (obj) преобразует ваш объект в строку JSON.
"Лучший" способ был предоставлен другими плакатами. Если вам не нужны полные кодировочные возможности ссылающихся библиотек, а нужно только кодировать простые массивы, то попробуйте:
<!DOCTYPE html>
<html>
<head>
<title>Simple functions for encoding Javascript arrays into JSON</title>
<script type="text/javascript">
window.onload = function() {
var a = [
[0, 1, '2', 3],
['0', '1', 2],
[],
['mf', 'cb']
],
b = [
0, '1', '2', 3, 'woohoo!'
];
alert(array2dToJson(a, 'a', '\n'));
alert(array1dToJson(b, 'b'));
};
function array2dToJson(a, p, nl) {
var i, j, s = '{"' + p + '":[';
nl = nl || '';
for (i = 0; i < a.length; ++i) {
s += nl + array1dToJson(a[i]);
if (i < a.length - 1) {
s += ',';
}
}
s += nl + ']}';
return s;
}
function array1dToJson(a, p) {
var i, s = '[';
for (i = 0; i < a.length; ++i) {
if (typeof a[i] == 'string') {
s += '"' + a[i] + '"';
}
else { // assume number type
s += a[i];
}
if (i < a.length - 1) {
s += ',';
}
}
s += ']';
if (p) {
return '{"' + p + '":' + s + '}';
}
return s;
}
</script>
</head>
<body>
</body>
</html>
Я немного изменил ранее предоставленный код ... потому что JSON имеет следующий формат: [{"объект": {"свойство_1": "значение_1", "свойство_2": "значение_2"}}]
Итак, код будет ...
<!DOCTYPE html>
<html>
<head>
<title>Simple functions for encoding Javascript arrays into JSON</title>
<script type="text/javascript">
window.onload = function(){
var a = [['property_1','value_1'],['property_2', 'value_2']];
alert("Comienzo..., paso ////"+a+"\\\\\\ a formato JSON");
var jsonSerialized = array2dToJson(a, 'object');
alert(jsonSerialized);
};
// Estructura de JSON [{"object":{"property_1":"value_1","property_2":"value_2"}}]
function array2dToJson(a, p, nl) {
var i, j, s = '[{"' + p + '":{';
nl = nl || '';
for (i = 0; i < a.length; ++i) {
s += nl + array1dToJson(a[i]);
if (i < a.length - 1) {
s += ',';
}
}
s += nl + '}}]';
return s;
}
function array1dToJson(a, p) {
var i, s = '';
for (i = 0; i < a.length; ++i) {
if (typeof a[i] == 'string') {
s += '"' + a[i] + '"';
}
else { // assume number type
s += a[i];
}
if (i < a.length - 1) {
s += ':';
}
}
s += '';
if (p) {
return '{"' + p + '":' + s + '}';
}
return s;
}
</script>
</head>
<body>
<h1>Convertir un Array a JSON...</h1>
</body>
</html>