@ivandao

Функции проведения JSON?

Есть ли готовые функции для приведения JSON вида

[
   { "a" :  "1", "b" : "1", "c" : "0" },
   { "a" :  "1", "b" : "2", "c" : "1" },
   { "a" :  "1", "b" : "3" },
   { "a" :  "2", "b" : "1", "c" : "2" },
   { "a" :  "2", "b" : "1", "c" : "3" }
]


к виду:

[{
	"a": [{
		"1": [{
			"b": [{
				"1": { "c": "0" },
				"2": { "c": "1" },
				"3": { "c": "" }
			}]
		}]
	}],
	"2": [{
		"b": [{
			"1": [
					{ "c": "2" },
					{ "c": "3" }
					]
		}]
	}]
}]


и к виду:

[{
	"1": {
		"1": "0",
		"2": "1",
		"3": ""
	},
	"2": [{
		"1": ["2", "3"]
	}]
}]
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Нет. Готовых функций нет.

Хотя сделать такое не сложно. Главное, знать, что хотеть. Из ваших примеров это ни разу не очевидно. В них не прослеживается закономерность и куча несостыковок. Вероятно, вы очень спешили, когда их составляли. Так что я даже не уверен, что вы сами знаете, что вам нужно. Но зато я уверен, что как только вы начнете делать (или начнете составлять ТЗ), то сразу поймете, что вам нужно, а что не нужно.

Когда сделаете свою функцию, не поленитесь вернуться в этот вопрос и проверить, насколько же сильно результат функции отличается от ваших примеров.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
irishmann
@irishmann
Научись пользоваться дебаггером
Используй JSON.stringify и <pre> на полную.
JSON.stringify(jsObj, null, "\t"); // добавит отступы с табами
JSON.stringify(jsObj, null, 4);    // добавит отступы с 4 пробелами

<pre> - адекватно выведет на странице

Грубый пример

<pre id='formated'></pre>
<script type="text/JavaScript">
var json = JSON.parse('{"glossary":{"title":"example glossary","GlossDiv":{"title":"S","GlossList":{"GlossEntry":{"ID":"SGML","SortAs":"SGML","GlossTerm":"Standard Generalized Markup Language","Acronym":"SGML","Abbrev":"ISO 8879:1986","GlossDef":{"para":"A meta-markup language, used to create markup languages such as DocBook.","GlossSeeAlso":["GML","XML"]},"GlossSee":"markup"}}}}}');
var formated = document.getElementById('formated');
formated.innerHTML = JSON.stringify(json, null, 4);
</script>

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы