Skip to content

Instantly share code, notes, and snippets.

@junxy
Last active December 9, 2020 03:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save junxy/5248fd15a869863a6e2f982b757c74a9 to your computer and use it in GitHub Desktop.
Save junxy/5248fd15a869863a6e2f982b757c74a9 to your computer and use it in GitHub Desktop.
Java queryString to obj Example sample 两行代码(使用已有工具库)实现QueryString转对象,拒绝硬编码
package test;
import lombok.Data;
import lombok.NonNull;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.http.NameValuePair;
import org.apache.http.client.utils.URLEncodedUtils;
import org.junit.Test;
import java.nio.charset.StandardCharsets;
import java.util.List;
import static org.junit.Assert.assertEquals;
@Slf4j
public class Test4 {
@Data
public static class TestUser {
private String name;
private String name2;
}
@Test
public void test() {
String queryString = "name=haha&name2=xixi";
List<NameValuePair> list = URLEncodedUtils.parse(queryString, StandardCharsets.UTF_8);
TestUser testUser = new TestUser();
setListToObj(testUser, list);
assertEquals(testUser.getName(), "haha");
assertEquals(testUser.getName2(), "xixi");
}
public static void setListToObj(@NonNull Object obj, @NonNull List<NameValuePair> list) {
for (NameValuePair nameValuePair : list) {
try {
BeanUtils.setProperty(obj, nameValuePair.getName(), nameValuePair.getValue());
} catch (Exception ex) {
log.warn("listToObj 出错 nameValuePair NV:" + nameValuePair.getName() + "," + nameValuePair.getValue(), ex);
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment