fix bug for issue #3569 (#3574)
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (11, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (17, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (21, windows-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, macos-latest) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, ubuntu-24.04) (push) Has been cancelled Details
Java CI / Test on JDK ${{ matrix.java }} OS ${{ matrix.os }} (8, windows-latest) (push) Has been cancelled Details

This commit is contained in:
jujn 2025-05-28 04:08:22 +08:00 committed by GitHub
parent 56b04c4355
commit d5092258bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 38 additions and 1 deletions

View File

@ -687,7 +687,11 @@ public class ObjectWriterAdapter<T>
}
if (valueWriter instanceof ObjectWriterAdapter) {
ObjectWriterAdapter objectWriterAdapter = (ObjectWriterAdapter) valueWriter;
fieldValue = objectWriterAdapter.toJSONObject(fieldValue);
if (!objectWriterAdapter.getFieldWriters().isEmpty()) {
fieldValue = objectWriterAdapter.toJSONObject(fieldValue);
} else {
fieldValue = JSON.toJSON(fieldValue);
}
}
}
jsonObject.put(fieldWriter.fieldName, fieldValue);

View File

@ -0,0 +1,33 @@
package com.alibaba.fastjson2.issues_3500;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class Issue3569 {
@Test
public void test() {
TestClass<String> testClass1 = new TestClass<>("hello");
JSONObject jsonObject = JSONObject.from(testClass1);
assertEquals(jsonObject.toString(), "{\"generic\":\"hello\"}");
TestClass<TestData> testClass2 = new TestClass<>(new TestData("hello"));
jsonObject = JSONObject.from(testClass2);
assertEquals(jsonObject.toString(), "{\"generic\":{\"testData\":\"hello\"}}");
}
@Data
@AllArgsConstructor
public static class TestClass<T> {
private T generic;
}
@Data
@AllArgsConstructor
public static class TestData {
private String testData;
}
}