A DNS TXT record consists of a list of "character strings", each one less than 255 octets (see RFC 1035). In zone file format, you express this as a sequence of whitespace separated strings. Each string can be quoted or unquoted. If one of your character strings contains embedded white space you'll need to use the quoted form.
The system is interpreting your input as a list of three character strings but it sounds like you are trying to create a TXT record with a single character string. Try:
{
"kind": "dns#resourceRecordSet",
"name": "example.com.",
"rrdatas": [
"\"v=spf1 include:_spf.google.com ~all\"",
],
"ttl": 84600,
"type": "TXT"
},
The outer quotation marks are for the JSON string. The inner escaped-for-JSON ones are part of the zone file format. Hope this helps.