Javascript 尝试在我的JSON中创建URL,但不确定这是否正确

Javascript 尝试在我的JSON中创建URL,但不确定这是否正确,javascript,jquery,json,Javascript,Jquery,Json,我希望如何在JSON中使用它(这是一个示例): 我的代码是什么样子的: exObject['exerciseGetWordInput'] = $(this).find('input.exerciseGetWordInput').val(); var audioId = MEDIAARRAY.audio.lowercase.indexOf(exObject['exerciseGetWordInput'].toLowerCase() + '.mp3'); var audio_link = '';

我希望如何在JSON中使用它(这是一个示例):

我的代码是什么样子的:

exObject['exerciseGetWordInput'] = 
$(this).find('input.exerciseGetWordInput').val();
var audioId = MEDIAARRAY.audio.lowercase.indexOf(exObject['exerciseGetWordInput'].toLowerCase() + '.mp3');
var audio_link = '';
 if (audioId > -1) {
  exObject['audio'] = 'https://test.diglin.eu' + MEDIAARRAY.audio.path + MEDIAARRAY.audio.files[audioId];
    }
上面的代码应该被实现到我的函数中,但我不知道如何将其准确地传递到我的ajax调用中

这一切发生的函数:

function setMainObjectArray() {
var exercises = [];
var eBlocks = $('.eBlock');

eBlocks.each(function(i, eBlock) {
    var exObject = {
      word: $(eBlock).find('input.ExerciseGetWordInput').val(),
      syllables: [],
    };

      exObject['exerciseGetWordInput'] = $(this).find('input.exerciseGetWordInput').val();

    var audioId = MEDIAARRAY.audio.lowercase.indexOf(exObject['exerciseGetWordInput'].toLowerCase() + '.mp3');
    var audio_link = '';
    if (audioId > -1) {
        exObject['audio'] = 'https://test.diglin.eu' + MEDIAARRAY.audio.path + MEDIAARRAY.audio.files[audioId];
    }

    $(eBlock).find('input.syllable').each(function(j, syll) {

      exObject.syllables.push($(syll).val());            
    });

    exercises.push(exObject);
  });

return exercises;
}
我的ajax调用:

function saveExerciseAjaxCall() {
  console.log(setMainObjectArray());


    $.ajax({
        url: 'saveJson.php',
        type: 'POST',
        data: {
            id: getUrlParameter('id'),
            getExerciseTitle: $('#getExerciseTitle').val(),
            language: $('#languageSelector').val(),
            application: 'lettergrepen',
            'main_object': {
              title: $('#getExerciseTitle').val(),
              language: $('#languageSelector').val(),
              exercises: setMainObjectArray()
              },
              dataType: 'json'
            }
    }).done(function(response) {

    }).fail(function(jqXHR, textStatus, errorThrown){
      console.log(jqXHR);
      console.log(errorThrown);
      console.log(textStatus);
    });
}
你很可能想知道为什么我不尝试一下,看看会发生什么(或者你可以使用这样的论点:为什么不使用JSON验证器测试它?这是因为我以前做过一次这样的事情,我的应用程序一路崩溃。但JSON验证器给了我“有效的JSON”)

编辑:因此您可以看到完整的JSON,它应该如下所示:

{
"exercisetitle": "dedew",
"application": "",
"language": "nl_NL",
"id": "new",
"main_object": {
"title": "dedew",
"exercises": [
  {
    "word": "aap",
    "audio": "https://test.diglin.eu/media/audio/nl_NL/aap.mp3"
  }
]
 }
}

你是说你实际上没有运行这个代码,但是你在问它是否正确??另外,我没有看到任何人试图在任何地方使用
.audio
值。我知道stackoverflow不是这样工作的。但是在我把之前的事情搞砸之后,我不完全确定验证器是否正确。我也不经常使用音频URL发送到JSON文件,所以我至少希望被指出正确的方向。我宁愿有几张反对票,但要从中获得知识,然后根本不去尝试,再次毁掉一切。因此,用一个简短的答案来回答你的问题:不,我没有运行这个代码,我在问它是否正确。你还说我没有尝试在任何地方使用音频值,但我不是在为音频创建整个设置的文章中这样做的吗?正如我的帖子所提到的,从我的角度来看,我认为我不需要在我的ajax调用中实现它,因为我已经做了应该为'audio'赋值的部分。不-你在两个地方设置了
exObject.audio
的值,但我没有看到它在任何地方实际使用。另外,从函数返回值
exercises
,但也没有在任何地方使用该值<代码>控制台.log(setMainObjectArray())将执行函数,记录返回值,然后不执行其他操作。您没有以任何其他方式使用返回值。因此。。。简而言之:代码太糟糕了。对的
{
"exercisetitle": "dedew",
"application": "",
"language": "nl_NL",
"id": "new",
"main_object": {
"title": "dedew",
"exercises": [
  {
    "word": "aap",
    "audio": "https://test.diglin.eu/media/audio/nl_NL/aap.mp3"
  }
]
 }
}