Skip to content

Commit

Permalink
bug fixed for PrettyFormat, fix #3672
Browse files Browse the repository at this point in the history
  • Loading branch information
wenshao committed Apr 5, 2021
1 parent 4d47b44 commit bab56ae
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
Expand Up @@ -75,7 +75,7 @@ public final void write(JSONSerializer serializer, Object object, Object fieldNa
out.write(',');
serializer.println();
}
serializer.write(array[i]);
serializer.writeWithFieldName(array[i], Integer.valueOf(i));
}
serializer.decrementIdent();
serializer.println();
Expand Down
59 changes: 59 additions & 0 deletions src/test/java/com/alibaba/json/bvt/issue_3600/Issue3672.java
@@ -0,0 +1,59 @@
package com.alibaba.json.bvt.issue_3600;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.google.common.collect.Lists;
import lombok.Data;
import org.junit.Test;

import java.util.ArrayList;

import junit.framework.TestCase;

public class Issue3672 extends TestCase {
public void test_for_issue() throws Exception {
Issue3672Root root = new Issue3672Root();
Issue3672A a = new Issue3672A();
Issue3672B b = new Issue3672B();
Issue3672C c = new Issue3672C();
Issue3672D d = new Issue3672D();
root.setA(a);
a.setB(Lists.newArrayList(b).toArray());
b.setC(c);
c.setD(d);
d.setE(Lists.newArrayList(c));
String str1 = JSON.toJSONString(root, SerializerFeature.PrettyFormat, SerializerFeature.WriteMapNullValue);
String str2 = JSON.toJSONString(root);

JSONObject obj1 = JSON.parseObject(str1);
JSONObject obj2 = JSON.parseObject(str2);
assertEquals(obj1.toString(), obj2.toString());
}

@Data
private class Issue3672Root {
private Issue3672A a;
}

@Data
private class Issue3672A {
private Object[] b;
}

@Data
private class Issue3672B {
private Issue3672C c;
}

@Data
private class Issue3672C {
private Issue3672D d;
}

@Data
private class Issue3672D {
private ArrayList<Issue3672C> e;
}

}

0 comments on commit bab56ae

Please sign in to comment.