You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS中发送含动态JSON数组的POST请求并修改司机邮箱

Hey there! Let's break this down step by step based on common scenarios—whether you're working on the frontend (since you mentioned a TextField) or backend, here's how to handle this:

1. Frontend Example (React with Axios)

Since you referenced a TextField, I'll assume you're using a frontend framework like React. Here's a practical implementation:

Step 1: Fetch dynamic car data from the other API

First, pull the base data that includes the dynamic id and drivers fields:

import axios from 'axios';

// Fetch initial car data from your source API
const fetchCarData = async () => {
  try {
    const response = await axios.get('https://your-source-api.com/cars');
    return response.data; // Should match your structure: { "cars": [...] }
  } catch (error) {
    console.error('Failed to load car data:', error);
    throw error;
  }
};

Step 2: Handle TextField input and update the drivers array

Let's say you have a TextField for the new driver email, plus a way to select which car to add the driver to (adjust if you want to add to all cars). Here's how to update the data safely:

import { useState, useEffect } from 'react';

function CarDriverUpdater() {
  const [carData, setCarData] = useState(null);
  const [newDriverEmail, setNewDriverEmail] = useState('');
  const [selectedCarId, setSelectedCarId] = useState(126); // Default or from user selection

  // Load initial data when the component mounts
  useEffect(() => {
    const loadInitialData = async () => {
      const data = await fetchCarData();
      setCarData(data);
    };
    loadInitialData();
  }, []);

  // Update the target car's drivers list with the new email
  const addNewDriver = () => {
    if (!carData || !newDriverEmail) return;

    const updatedCars = carData.cars.map(car => {
      if (car.id === selectedCarId) {
        // Create a new array to avoid mutating original data
        return {
          ...car,
          drivers: [...car.drivers, newDriverEmail]
        };
      }
      return car;
    });

    setCarData({ ...carData, cars: updatedCars });
  };

Note: If you want to add the new driver to all cars instead of a specific one, remove the if (car.id === selectedCarId) check and update every car's drivers array.

Step 3: Send the POST request with the updated body

Once your data is ready, send it via POST:

const submitUpdatedData = async () => {
    try {
      await axios.post('https://your-target-api.com/submit', carData, {
        headers: {
          'Content-Type': 'application/json'
        }
      });
      console.log('Data submitted successfully!');
      // Reset input or show success feedback
      setNewDriverEmail('');
    } catch (error) {
      console.error('Failed to submit data:', error);
    }
  };

  // Render your UI elements here
  return (
    <div>
      <input
        type="email"
        value={newDriverEmail}
        onChange={(e) => setNewDriverEmail(e.target.value)}
        placeholder="Enter new driver email"
      />
      <button onClick={addNewDriver}>Add Driver to Selected Car</button>
      <button onClick={submitUpdatedData}>Submit Changes</button>
    </div>
  );
}
2. Backend Example (Python with Requests)

If you're handling this logic on the backend, here's how to do it with Python's requests library:

Step 1: Fetch dynamic car data from the other API

import requests

def fetch_car_data():
    try:
        response = requests.get("https://your-source-api.com/cars")
        response.raise_for_status()
        return response.json()  # Returns { "cars": [...] }
    except requests.exceptions.RequestException as e:
        print(f"Error fetching car data: {e}")
        raise

Step 2: Add the new driver email to the target car's array

def update_drivers(car_data, new_driver_email, target_car_id=126):
    updated_cars = []
    for car in car_data["cars"]:
        if car["id"] == target_car_id:
            # Copy the existing drivers list to avoid mutation
            updated_drivers = car["drivers"].copy()
            updated_drivers.append(new_driver_email)
            updated_cars.append({**car, "drivers": updated_drivers})
        else:
            updated_cars.append(car)
    return {"cars": updated_cars}

Step 3: Send the POST request with the updated body

def send_post_request(updated_data):
    try:
        response = requests.post(
            "https://your-target-api.com/submit",
            json=updated_data,
            headers={"Content-Type": "application/json"}
        )
        response.raise_for_status()
        print("POST request sent successfully!")
    except requests.exceptions.RequestException as e:
        print(f"Error sending request: {e}")
        raise

# Put it all together
if __name__ == "__main__":
    car_data = fetch_car_data()
    new_email = "sss@gmail.com"  # Could come from user input or another source
    updated_data = update_drivers(car_data, new_email)
    send_post_request(updated_data)

内容的提问来源于stack exchange,提问作者mEldewaik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:39:41