如何在 Java 中使用具有多个类似参数的 JSON 请求/响应循环?



有没有办法放置我的请求,并在我有非常相似的值时在循环中使用我的响应?我想过循环,但找不到实现的方法。

我正在从Android设备发送请求,TextView等待响应。当我收到响应时,我正在检查它是否不为空或 null,如果不是,我正在设置TextView的文本并更改可见性(因为默认值已消失(。

例如,这将是我的JSON.

{
spaghetti: [
{
strIngredient1: "1 pound ground beef",
strIngredient2: "1 onion, chopped",
strIngredient3: "null",
strIngredient4: "1 (28 ounce) can diced tomatoes",
strIngredient5: ""
}
]
}

而我的状况:

if(!"".equals(dinner.getStrIngredient1()) && !"null".equals(dish.getStrIngredient1())) {
firstIngredient.setText(dinner.getStrIngredient1());
firstIngredient.setVisibility(View.VISIBLE);
}
if(!"".equals(dinner.getStrIngredient2()) && !"null".equals(dish.getStrIngredient2())) {
secondIngredient.setText(dinner.getStrIngredient2());
secondngredient.setVisibility(View.VISIBLE);
}
...

正如您在上面看到的,我有类似的值,我真的需要重复五次吗?有没有办法让它"干净"?

我认为是的,或者您可以使用开关大小写,但是文字会在那里。

使用 java Reflection。 但为此,您需要将第一个成分,第二成分命名分别调整为成分1,成分2。

在您的成分列表上获取 for 循环 然后使用 java 反射动态形成方法

Method method = obj.getClass().getMethod(methodName);//in methodname you can write method you like to invoke like ingredient+i
method.invoke(obj, arg1, arg2);

最新更新