Your analysis is wrong, while creating objects costs more than not creating objects, it is pretty cheap (depending on the object). in your code the ToJsonFormat() call is the big expense. For performance, using a JsonWriter would be a better improvement.
creating objects in static methods is no different than in instance methods. the main difference is a static method is called directly rather than thru an instance vtable. static methods are just as thread safe as instance methods.
note: do not confuse static methods (all methods are really static, instance methods just get passed the this pointer) with static variables, which generally are not thread safe.