1

我有一个结构,我想用 Arduinojson 库从 JSON 文件中填充数据。填充trackCount是没有问题的。填充 track[] 数组是我卡住的地方。结构:

struct AudioObject {
 byte trackCount;
 const char* tracks[];};

在设置()中:

AudioObject aO;
getAudioObject(jsonConfigFilename, &foo, &aO);

在函数 getAudioObject(const char* pConfigFilename, const String *paoID, AudioObject *aO) 中:

    File configFile = SD.open(pConfigFilename);
    DynamicJsonDocument configDoc(4096);
    DeserializationError error = deserializeJson(configDoc, configFile);

    JsonArray arAudio= configDoc["toc"]["audioObject"];
    for(JsonObject audioObject: arAudio)    {
        if(audioObject["audioId"]==*paoID){
            //Found Audio ID Creating Object
            aO->trackCount=(byte)audioObject["trackCount"];
            //Now, lets get the Filenames
            JsonArray arAudioTracks = audioObject["tracks"];
            Serial.println (aO->trackCount);

            //copy the Jsonarray to the AudioObject Array
            copyArray(arAudioTracks,aO->tracks); // <---does not work

         
            configDoc.clear();
            configFile.close();
            return true;

我究竟做错了什么?我只希望 aO->tracks 包含存储在 jsonArray 中的曲目。内容为:["filename1.mp3","filename2.mp3",...]

4

0 回答 0