Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.08.2020, 16:28
Аспирант
Отправить личное сообщение для maplol123@gmail.com Посмотреть профиль Найти все сообщения от maplol123@gmail.com
 
Регистрация: 30.06.2019
Сообщений: 41

Редактирование JSON файла
Я сделал таблицу в Excel и конвентировал ее в JSON, и у меня получилось вот так:
[
  {
  "QUESTION": "61771",
  "ANSWERS": "2772718",
  "CORRECT": "1,2,3,4"
  },
  {
    "ANSWERS": "7271717"
  },
  {
    "ANSWERS": "272727"
  },
  {
    "ANSWERS": "6271717"
  },
  {
    "QUESTION": "716171781",
    "ANSWERS": "6171717",
    "CORRECT": "1,2"
  },
  {
    "ANSWERS": "7171616"
  },
  {
    "ANSWERS": "287272"
  }
]

Возможно ли сделать примерно вот так? Чтоб все "ANSWERS", которые ниже "QUESTION" входили в состав одного "ANSWERS".
[
  {
  "QUESTION": "61771",
  "ANSWERS": ["2772718 ",
     "7271717",
     "272727",
     "6271717"],
  "CORRECT": [1,2,3,4]
  },
  {
    "QUESTION": "716171781",
    "ANSWERS": ["6171717",
      "7171616",
      "287272"],
    "CORRECT": [1,2]
  },
]

Если потребуется, я могу скинуть весь JSON файл (около 1000 вопросов)
Ответить с цитированием
  #2 (permalink)  
Старый 24.08.2020, 17:21
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,743

<!DOCTYPE html>
<htmll lang="ru">
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</style>

</style>
</head>
<body>
<textarea id=ijs rows=15 cols=40 placeholder="Copy your JSON here"></textarea>
<br><br>
<button id=bt>Correct JSON</button>
</body>
<script>
const correctJson = (ojso) =>{
	const njso = [];
	let tmpo = null;
	for (let ob of ojso) {
		if ('QUESTION' in ob) {
			if (tmpo) njso.push(tmpo);
			tmpo = {QUESTION: ob.QUESTION, ANSWERS:[ob.ANSWERS], CORRECT:ob.CORRECT.split(',').map(v => +v)}
		} else {
			tmpo.ANSWERS.push(ob.ANSWERS)
		}
	}
	if (tmpo) njso.push(tmpo);
	return njso;
}

document.getElementById('bt').addEventListener('click', () => {
	const oldJson = JSON.parse(document.getElementById('ijs').value)
	document.getElementById('ijs').value = JSON.stringify(correctJson(oldJson))
})
</script>
</html>

Последний раз редактировалось voraa, 24.08.2020 в 17:25.
Ответить с цитированием
  #3 (permalink)  
Старый 24.08.2020, 17:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

maplol123@gmail.com,
<script>
const data = [{
        "QUESTION": "61771",
        "ANSWERS": "2772718",
        "CORRECT": "1,2,3,4"
    },
    {
        "ANSWERS": "7271717"
    },
    {
        "ANSWERS": "272727"
    },
    {
        "ANSWERS": "6271717"
    },
    {
        "QUESTION": "716171781",
        "ANSWERS": "6171717",
        "CORRECT": "1,2"
    },
    {
        "ANSWERS": "7171616"
    },
    {
        "ANSWERS": "287272"
    }
]
const createData = data => {
    let totall = [], ar = [];
    for (let {QUESTION, ANSWERS, CORRECT} of data) {
        if (QUESTION) {
            ar = ANSWERS = [ANSWERS];
            CORRECT = CORRECT.split(/\D+/).map(a => Number(a));
            totall.push({QUESTION, ANSWERS, CORRECT})
        } else ar.push(ANSWERS)
    }
    return totall
}
document.write(JSON.stringify(createData(data)))
  </script>
Ответить с цитированием
  #4 (permalink)  
Старый 24.08.2020, 19:17
Аспирант
Отправить личное сообщение для maplol123@gmail.com Посмотреть профиль Найти все сообщения от maplol123@gmail.com
 
Регистрация: 30.06.2019
Сообщений: 41

рони, voraa, спасибо большое, очень-преочень выручили!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильтрация товаров из файла JSON по по трем различным фильтрам на чистом JS? nathan111777 Общие вопросы Javascript 3 26.08.2019 15:02
Как с помощью JavaScript вывести некоторые данные из файла json на страницу html Lefseq Общие вопросы Javascript 3 24.07.2019 17:37
Загрузка большого json файла uncher4 AJAX и COMET 1 23.06.2014 22:54
TreeView из json файла Chester89 Элементы интерфейса 0 13.07.2012 17:18
Редактирование xml файла Arka1m Internet Explorer 2 26.11.2011 15:12