mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-29 17:48:50 +08:00
🐛 #1738 修复企业微信创建用户接口自定义字段缺失的问题
This commit is contained in:
@ -4,6 +4,7 @@ import com.google.common.collect.Lists;
|
||||
import com.google.gson.JsonArray;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import jodd.util.MathUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -151,4 +152,50 @@ public class GsonHelper {
|
||||
public static JsonArray getAsJsonArray(JsonElement element) {
|
||||
return element == null ? null : element.getAsJsonArray();
|
||||
}
|
||||
|
||||
/**
|
||||
* 快速构建JsonObject对象,批量添加一堆属性
|
||||
*
|
||||
* @param keyOrValue 包含key或value的数组
|
||||
* @return JsonObject对象.
|
||||
*/
|
||||
public static JsonObject buildJsonObject(Object... keyOrValue) {
|
||||
JsonObject result = new JsonObject();
|
||||
put(result, keyOrValue);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量向JsonObject对象中添加属性
|
||||
*
|
||||
* @param jsonObject 原始JsonObject对象
|
||||
* @param keyOrValue 包含key或value的数组
|
||||
*/
|
||||
public static void put(JsonObject jsonObject, Object... keyOrValue) {
|
||||
if (MathUtil.isOdd(keyOrValue.length)) {
|
||||
throw new RuntimeException("参数个数必须为偶数");
|
||||
}
|
||||
|
||||
for (int i = 0; i < keyOrValue.length / 2; i++) {
|
||||
final Object key = keyOrValue[2 * i];
|
||||
final Object value = keyOrValue[2 * i + 1];
|
||||
if (value == null) {
|
||||
jsonObject.add(key.toString(), null);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (value instanceof Boolean) {
|
||||
jsonObject.addProperty(key.toString(), (Boolean) value);
|
||||
} else if (value instanceof Character) {
|
||||
jsonObject.addProperty(key.toString(), (Character) value);
|
||||
} else if (value instanceof Number) {
|
||||
jsonObject.addProperty(key.toString(), (Number) value);
|
||||
} else if (value instanceof JsonElement) {
|
||||
jsonObject.add(key.toString(), (JsonElement) value);
|
||||
} else {
|
||||
jsonObject.addProperty(key.toString(), value.toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,139 @@
|
||||
package me.chanjar.weixin.common.util.json;
|
||||
|
||||
import com.google.gson.JsonObject;
|
||||
import org.testng.annotations.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
/**
|
||||
* GsonHelper 的单元测试.
|
||||
*
|
||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||
* @date 2020-09-04
|
||||
*/
|
||||
public class GsonHelperTest {
|
||||
|
||||
@Test
|
||||
public void testIsNull() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsNotNull() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetLong() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPrimitiveLong() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetInteger() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPrimitiveInteger() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetDouble() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPrimitiveDouble() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetFloat() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPrimitiveFloat() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetBoolean() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetString() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsString() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsLong() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsPrimitiveLong() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsInteger() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsPrimitiveInt() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsBoolean() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsPrimitiveBool() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsDouble() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsPrimitiveDouble() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsFloat() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsPrimitiveFloat() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetIntArray() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetStringArray() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetLongArray() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetAsJsonArray() {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBuildSimpleJsonObject() {
|
||||
try {
|
||||
GsonHelper.buildJsonObject(1, 2, 3);
|
||||
} catch (RuntimeException e) {
|
||||
assertThat(e.getMessage()).isEqualTo("参数个数必须为偶数");
|
||||
}
|
||||
|
||||
System.out.println(GsonHelper.buildJsonObject(1, 2));
|
||||
System.out.println(GsonHelper.buildJsonObject(1, null));
|
||||
System.out.println(GsonHelper.buildJsonObject("int", 1, "float", 2.1f, "double", 2.5));
|
||||
System.out.println(GsonHelper.buildJsonObject("boolean", true, "string", "1av"));
|
||||
System.out.println(GsonHelper.buildJsonObject(1, true, "jsonElement", new JsonObject()));
|
||||
System.out.println(GsonHelper.buildJsonObject("num", 2, "string", "cde", "char", 'a', "bool", true));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user