fix support list for JSONPathSingleName, for issue #3331
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Waiting to run Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Waiting to run Details

This commit is contained in:
yanxutao89 2025-04-30 22:20:54 +08:00 committed by Shaojin Wen
parent b4b7f72fa0
commit 29f4ea0aa7
2 changed files with 23 additions and 0 deletions

View File

@ -115,6 +115,11 @@ final class JSONPathSingleName
return ((Map) root).containsKey(name);
}
if (root instanceof List) {
List list = (List) root;
return !list.isEmpty() && contains(list.get(0));
}
ObjectWriterProvider provider = getWriterContext().provider;
ObjectWriter objectWriter = provider.getObjectWriter(root.getClass());

View File

@ -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));
}
}