I tested with urlencoded serialized infotable and it worked
{"dataShape":{"fieldDefinitions":{"description":{"name":"description","description":"Entity description","baseType":"STRING","ordinal":0,"aspects":{}},"name":{"name":"name","description":"Entity name","baseType":"STRING","ordinal":0,"aspects":{"isPrimaryKey":true}}}},"rows":[{"description":"world","name":"Hello"}]}
url encoded:
http://localhost/Thingworx/Runtime/index.html?mashup=Test&entities=%7B%22dataShape%22:%7B%22fieldDefinitions%22:%7B%22description%22:%7B%22name%22:%22description%22,%22description%22:%22Entity%20description%22,%22baseType%22:%22STRING%22,%22ordinal%22:0,%22aspects%22:%7B%7D%7D,%22name%22:%7B%22name%22:%22name%22,%22description%22:%22Entity%20name%22,%22baseType%22:%22STRING%22,%22ordinal%22:0,%22aspects%22:%7B%22isPrimaryKey%22:true%7D%7D%7D%7D,%22rows%22:%5B%7B%22description%22:%22world%22,%22name%22:%22Hello%22%7D%5D%7D
and it did render my grid which bound the entities mashup parameter:

mashup config:

Not sure if there is a more compact way for this. I dont think you can pass too much data to it via url this way...
Maybe you could have some "landing" mashup which would navigate to your target mashup, passing wanted default parameters instead?