Tested using initial JSON string:
string = "{\"3\":{}}";
First inserting
insert("spd", "{}", "3") <- This adds an extra opening bracket (and closing bracket).
Then inserting
insert("req", "120", "3/spd"); <- This inserts correctly.
Then inserting
insert("cur", "123", "3/spd"); <- This causes an issue with location sometimes becoming a very large number. 65135 (etc.)