Java 如何将CustomerName和CustomerPhone从api接收的字符串中分离出来

Java 如何将CustomerName和CustomerPhone从api接收的字符串中分离出来,java,android,Java,Android,如何将CustomerName和CustomerPhone从API接收的字符串中分离出来: { "CustomerPhone":"0300", "CustomerName":"Saleh", "CustomerPassword":"84CYmCulToJXo5KncGwSZa81acb2vbHjZ2IgUveMyeU=", "Salt":"Q/IoQURM1Cv05wbkJjuo3w==" } 你有几个选择 使用一个简单的JSON库,比如GSON,创建一个模型,您只需将字符串转

如何将CustomerName和CustomerPhone从API接收的字符串中分离出来:

{
  "CustomerPhone":"0300",
  "CustomerName":"Saleh",
  "CustomerPassword":"84CYmCulToJXo5KncGwSZa81acb2vbHjZ2IgUveMyeU=",
  "Salt":"Q/IoQURM1Cv05wbkJjuo3w=="
}

你有几个选择

使用一个简单的JSON库,比如GSON,创建一个模型,您只需将字符串转换为它,就可以了 使用androidjsonelements并从字符串中创建一个JsonElement,然后按名称遍历每个孩子,直到得到所需的。 最丑陋的方法,但你可以这样做,解析字符串的已知字符串。没有测试,你将不得不调整这个,但我真的希望你不要走这条路哈哈 var customerStartPhoneIndex=jsonString.indexOfCustomerPhone\:\

var customerStartNameIndex=jsonString.indexOfCustomerName\:\

var customerEndphoneIndex=jsonString.indexOf

var customerEndNameIndex=jsonString.indexOf,,str.indexOf+ 一,

var customerPhone=jsonString.subStringcustomerStartPhoneIndex, 自定义电话索引

var customerName=jsonString.substringcustomerStartNameIndex, 自定义名称索引

试试这个:

String jsonText = "{\"CustomerPhone\":\"0300\",\"CustomerName\":\"Saleh\",\"CustomerPassword\":\"84CYmCulToJXo5KncGwSZa81acb2vbHjZ2IgUveMyeU=\",\"Salt\":\"Q/IoQURM1Cv05wbkJjuo3w==\"}";
try {
    JSONObject jsonObj = new JSONObject(jsonText);
    String CustomerPhone = jsonObj.getString("CustomerPhone");
    String CustomerName = jsonObj.getString("CustomerName");
} catch (JSONException e){
    e.printStackTrace();
}

对于给定的字符串,下面的代码可以很好地工作,我已经测试过了,它非常自我解释

    val jsonObject = JSONObject(jsonString)
    val phone = jsonObject.getString("CustomerPhone")
    val name = jsonObject.getString("CustomerName")
    val password = jsonObject.getString("CustomerPassword")
    val salt = jsonObject.getString("Salt")

    Log.d("phone", phone)
    Log.d("name", name)
    Log.d("password", password)
    Log.d("salt", salt)

希望这对您有所帮助谢谢以下是完成此任务的简单步骤

步骤1:转到并粘贴JSON,现在选择选项目标语言为Java、源类型JSON、注释样式GSON。然后按预览按钮,将模型复制到剪贴板

步骤2:现在在项目中添加GSON库

步骤3:创建名为CustomerData或任何您想要的模型类,并从剪贴板粘贴代码

它看起来很像

public class CustomerData {

@SerializedName("CustomerPhone")
@Expose
private String customerPhone;
@SerializedName("CustomerName")
@Expose
private String customerName;
@SerializedName("CustomerPassword")
@Expose
private String customerPassword;
@SerializedName("Salt")
@Expose
private String salt;

public String getCustomerPhone() {
return customerPhone;
}

public void setCustomerPhone(String customerPhone) {
this.customerPhone = customerPhone;
}

public String getCustomerName() {
return customerName;
}

public void setCustomerName(String customerName) {
this.customerName = customerName;
}

public String getCustomerPassword() {
return customerPassword;
}

public void setCustomerPassword(String customerPassword) {
this.customerPassword = customerPassword;
}

public String getSalt() {
return salt;
}

public void setSalt(String salt) {
this.salt = salt;
}

}
步骤4: 现在,您必须通过以下代码将JSON解析为GSON对象,其中响应变量将是您的JSON字符串

CustomerData customerData = new Gson().fromJson(response,CustomerData.class);
customerData.getCustomerName();
customerData.getCustomerPhone();

这是一个JSON字符串。您应该找到一个可以帮助您解析JSON数据的库。提示,请查看Jackson或GSON Libraries我想要这个Saleh和0300分开这显示字符串不能转换为JSONObject我打开了我的Android Studio,我在发布代码之前已经测试过了,工作正常。我认为您的字符串上可能有一些不需要的特殊字符。你用我的字符串测试过我的代码了吗?或者你在使用你的代码?老板当我尝试你的代码时,它工作正常,但对来自web api的json字符串不起作用,格式为plz help{\CustomerPhone\:\0300\,\CustomerName\:\Saleh\,\CustomerPassword\:\84cymcultojxo5kncgwsza81acb2vbhjz2igvemyeu=,\Salt\:\Q/IoQURM1Cv05wbkJjuo3w=}它是一个字符串变量,谢谢你的帮助,我用以下方法解决了它:字符串a=s.replaceAll,\;字符串b=a.replaceAll^\\\$;JSONObject jObj=新的JSONObject B;字符串CustomerPhone=jObj.getStringCustomerPhone;字符串CustomerName=jObj.getStringCustomerName;其中s是传入字符串