mirror of https://github.com/alibaba/fastjson2.git
fix support list for JSONPathSingleName, for issue #3331
This commit is contained in:
parent
e25d5238ea
commit
e1971fc0f9
|
@ -115,6 +115,11 @@ final class JSONPathSingleName
|
||||||
return ((Map) root).containsKey(name);
|
return ((Map) root).containsKey(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (root instanceof List) {
|
||||||
|
List list = (List) root;
|
||||||
|
return !list.isEmpty() && contains(list.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
ObjectWriterProvider provider = getWriterContext().provider;
|
ObjectWriterProvider provider = getWriterContext().provider;
|
||||||
|
|
||||||
ObjectWriter objectWriter = provider.getObjectWriter(root.getClass());
|
ObjectWriter objectWriter = provider.getObjectWriter(root.getClass());
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.alibaba.fastjson2.issues_3300;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
public class Issue3331 {
|
||||||
|
@Test
|
||||||
|
public void test() {
|
||||||
|
String json = "[{\"priority_flag\":9,\"service_type\":\"bbb\",\"destination_addr\":\"bbb\"}]";
|
||||||
|
Object object1 = com.alibaba.fastjson.JSON.parse(json);
|
||||||
|
Object object2 = com.alibaba.fastjson2.JSON.parse(json);
|
||||||
|
String path = "$.service_type";
|
||||||
|
assertEquals(com.alibaba.fastjson.JSONPath.contains(object1, path), com.alibaba.fastjson2.JSONPath.contains(object2, path));
|
||||||
|
path = "$[0].service_type";
|
||||||
|
assertEquals(com.alibaba.fastjson.JSONPath.contains(object1, path), com.alibaba.fastjson2.JSONPath.contains(object2, path));
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue