preserve_order feature replace hashmaps in serde_json::Value enum with indexmap. You should not use this enum if you know the structure of the JSON.
Practically JSON string produces by serde_json from #[derive(Serialize)] struct reflects the ordering of the struct declaration itself. I'm not sure it's guaranteed but it's pretty stable. You can add some test yourself for extra safety.