aJson not parsing correctly

I am trying to use aJson to parse this data:

{
	"songs": [
		{
			"name": "Song Of Time",
			"notes": [69, 62, 65, 69, 62, 65, 69, 72, 71, 67, 65,
67, 69, 62, 60, 64, 62],
			"times": [600, 900, 600, 600, 900, 600, 300, 300, 600,
600, 300, 300, 600, 600, 300, 300, 900],
			"nunchuck": [3, 1, 2, 3, 1, 2]	
		}
	]
}

which is declared like this in my program:

char* songText = "{"
	"\"songs\": ["
		"{"
			"\"name\": \"Song Of Time\","
			"\"notes\": [69, 62, 65, 69, 62, 65, 69, 72, 71, 67, 65,"
"67, 69, 62, 60, 64, 62],"
			"\"times\": [600, 900, 600, 600, 900, 600, 300, 300, 600,"
"600, 300, 300, 600, 600, 300, 300, 900],"
			"\"nunchuck\": [3, 1, 2, 3, 1, 2]"	
		"}"
	"]"
"}";

using this segment of code:

aJsonObject* root = aJson.parse(songText);
  aJsonObject* songData = aJson.getObjectItem(root, "songs");
  aJsonObject* song = aJson.getArrayItem(songData, 0);
  aJsonObject* songName = aJson.getObjectItem(song, "name");
  songs[0].name = songName->valuestring;
  aJsonObject* noteData = aJson.getObjectItem(song, "notes");
  aJsonObject* timeData = aJson.getObjectItem(song, "times"); 
  int numberNotes = aJson.getArraySize(noteData);
  for (int i = 0; i < numberNotes; i++) {
    aJsonObject* note = aJson.getArrayItem(noteData, i);
    aJsonObject* time = aJson.getArrayItem(timeData, i);
    songs[0].notes.push_back(note->valueint);
    songs[0].notes.push_back(time->valueint);
  }
  aJsonObject* nunchuckData = aJson.getObjectItem(song, "nunchuck");
  int numberNunchuck = aJson.getArraySize(nunchuckData);
  for (int i = 0; i < numberNunchuck; i++) {
    aJsonObject* note = aJson.getArrayItem(nunchuckData, i);
    songs[0].nunchuck_notes.push_back(note->valueint);
  }

Unfortunately, I get an empty string for the name, [0, 0, 306, 306, 23856, 23856] for the notes, and [0, 306, 23856, 0, 0] for the nunchuck data. I also tried using aJson.print to print out the root, and got an empty string in return. Does anyone know what might be the issue here? Is it how I formatted the JSON in code?

which is declared like this in my program:

That is NOT correct. There should NOT be double quote after the open curly brace. There are, then, others double quotes in the wrong places.

That is NOT correct. There should NOT be double quote after the open curly brace. There are, then, others double quotes in the wrong places.

Could you explain more about what you mean? I believe the double quotes are supposed to product multi-line concatenation when declaring string literals, and when I print out the string to serial, I get this:

{"songs": [{"name": "Song Of Time","notes": [69, 62, 65, 69, 62, 65, 69, 72, 71, 67, 65,67, 69, 62, 60, 64, 62],"times": [600, 900, 600, 600, 900, 600, 300, 300, 600,600, 300, 300, 600, 600, 300, 300, 900],"nunchuck": [3, 1, 2, 3, 1, 2]}]}

So I don't think the multi-line quotes are an issue.

Is there some reason for spreading the string declaration over multiple lines? It seems to add more confusion than it adds clarity.

There are plenty of places where the string could be split that would not add confusion. Splitting the way you did was not useful.

I split the string this way for clarity, to make it look like the actual JSON tree that was being generated. Putting the entire string on a single line would be a nightmare to edit, debug, or add to.