我有一个结构,我想用 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",...]