Как я могу сделать объекты JSON на основе идентификаторов контейнеров, которые я создаю и заполняю - PullRequest
0 голосов
/ 12 июня 2018

Проблема: мой JSON не практичен, и я просто чувствую, что столкнусь с проблемами (уже сталкивался с ними).Как вы можете видеть, мой JSON выглядит странно, но почему-то это действительно JSON (проверено с помощью JSONLint).У меня есть поля ввода, которые находятся в контейнерах с их собственным уникальным идентификатором (они увеличиваются).Мне было интересно, если можно отправить данные, вставленные в поля ввода вместе, поэтому, когда я получу их, они останутся вместе.

как выглядит мой JSON прямо сейчас:

{
"main_object": {
    "id": "new",
    "formData": {
        "language": "nl_NL",
        "getExerciseTitle": "ExampleForStackOverflow",
        "question_takeAudio_exerciseWord[0": "ExampleForStackOverflow",
        "Syllablescounter[0": "Example",
        "Syllablescounter[1": "Example1",
        "question_takeAudio_exerciseWord[1": "SecondExampleForStackOverflow",
        "Syllablescounter[2": "Second",
        "Syllablescounter[3": "Example"
    }
  }
}

что я ищу и надеюсь достичь: source: Luiz Carloz (Большое спасибо).

{ "main_object": 
  {
  "id": "new",
  "formData": [
    {
        "language": "nl_NL", 
        "getExerciseTitle": "ExampleForStackOverflow",
        "Word": "ExampleForStackOverflow", 
        "Syllables":["Example", "Example1"]
    },
    {
        "Word": "SecondExampleForStackOverflow",
        "Syllables": ["Second", "Example"]
    }
]
   }
 };

https://jsfiddle.net/StackOverflowAccount/sa2eowhh/ У меня есть скрипка, чтобы вы поняли, о чем я.Когда вы нажимаете зеленую кнопку +, это добавляет целое поле.Это контейнер с идентификатором. Я пытаюсь сохранить все в одном и том же идентификаторе в файле JSON, поэтому, когда я извлекаю его в свой интерфейс, он «знает», какие слоги являются частью слова упражнения.

У меня есть вызов ajax, который, как мне кажется, заставляет мой JSON-файл выглядеть так, как у меня сейчас.

Мой вызов ajax:

 function saveExerciseAjaxCall() {
$("#my_form").on("submit", function(event) {
    event.preventDefault();
    $.ajax({
        url: 'saveJson.php',
        type: 'POST',
        data: {
            id: getUrlParameter('id'),
            formData: JSON.parse('{"' + decodeURI($('#my_form').serialize()).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"') + '"}')
        },
        dataType: 'json',
    }).done(function(response) {

    });
});
}

1 Ответ

0 голосов
/ 12 июня 2018

Во-первых, ваша скрипка не работает, не найдена.

Во-вторых, если я правильно понял, вам нужно переформулировать структуру JSON.Я бы предложил вам создать массив для данных вашей формы.Как то так:

{ "main_object": 
  {
    "id": "new",
     "formData": [
        {
            "language": "nl_NL", 
            "getExerciseTitle": "ExampleForStackOverflow",
            "Word": "ExampleForStackOverflow", 
            "Syllables":["Example", "Example1"]
        },
        {
            "Word": "SecondExampleForStackOverflow",
            "Syllables": ["Second", "Example"]
        }
    ]
 }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...