我有以下JSON
[{
"rowId": "03 EUR10580000"
}, {
"rowId": "03 EUR10900001"
}, {
"rowId": "03 EUR1053RUD*"
}, {
"rowId": "033331"
}]
我希望将它转换为只包含rowId值的String列表,所以在这种情况下就像
"03 EUR10580000"
"03 EUR10900001"
"03 EUR1053RUD*"
"033331"
我是用Gson从Json做的,但作为回报我得到一个LinkedTreeMap列表,当我做一个循环失败。我想要一个简单的字符串列表。
答案 0 :(得分:3)
好吧,你的字符串不是"字符串列表"的json。它包含对象列表。所以你可以做的是用rowID作为字符串属性创建一个类。
班级数据
然后你可以使用Gson将这个JSON字符串解析为List<数据>使用here
或者你必须手动准备一个新的json解析器。
答案 1 :(得分:2)
如果您只想使用Gson
快速解析字符串,则只需创建构建器并使用"默认" List
和Map
个实例用于表示Java中的JSON
。如果您想要更加类型安全,或者想要在更大的"更大的"中使用已解析的实例。项目,我建议按照其他答案中的描述创建一个POJO。
final GsonBuilder gsonBuilder = new GsonBuilder();
// you may want to configure the builder
final Gson gson = gsonBuilder.create();
/*
* The following only works if you are sure that your JSON looks
* as described, otherwise List<Object> may be better and a validation,
* within the iteration.
*/
@SuppressWarnings("unchecked")
final List<Map<String, String>> list = gson.fromJson("[{ ... }]", List.class);
final List<String> stringList = list.stream()
.map(m -> m.get("rowId"))
.collect(Collectors.toList());
System.out.println(stringList);
答案 2 :(得分:1)
将POJO课程写为
import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;
public class RootObject {
@SerializedName("rowId")
@Expose
private String rowId;
public String getRowId() {
return rowId;
}
public void setRowId(String rowId) {
this.rowId = rowId;
}
}
然后只需创建List<RootObject>
并从POJO中获取值。
答案 3 :(得分:0)
你有:
String str = "[{\"rowId\":\"03 EUR10580000\"},{\"rowId\":\"03 EUR10900001\"},{\"rowId\":\"03 EUR1053RUD*\"},{\"rowId\":\"033331\"}]"
你可以这样做(不需要任何像gson这样的外部库):
str = str.replace("{\"rowId\":\"","").replace("\"}","").replace("[","").replace("]","");
List<String> rowIDs = str.split(",");
如果字符串格式为JSON,您还可以trim()
rowIDs
$mysqli = new mysqli('localhost', 'my_user', 'my_password', 'world');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
/* create a prepared statement */
$stmt = $mysqli->prepare("SELECT * FROM (SELECT * FROM players WHERE Player_name = ?) s1
WHERE EXISTS (SELECT * FROM (SELECT * FROM players WHERE Player_name = ?) s2 WHERE s1.Team_name = s2.Opposing_team)")
/* bind parameters for markers */
$stmt->bind_param("ss", $playerOne, $playerTwo);
/* execute query */
$stmt->execute();
答案 4 :(得分:0)
您需要将json字符串解析为avg / total 67 60 59 5
。然后迭代JsonArray
实例并将每个json元素添加到列表JsonArray
。 Follwoing code sinppet是解决方案:
ls