content: package com.alibaba.json.bvt.bug;
  
  import org.junit.Assert;
  
  import com.alibaba.fastjson.JSON;
  import com.alibaba.fastjson.JSONObject;
  import com.alibaba.fastjson.parser.Feature;
  import com.alibaba.fastjson.serializer.SerializerFeature;
  
  import junit.framework.TestCase;
  
  public class Issue_748 extends TestCase {
      protected void setUp() throws Exception {
          com.alibaba.fastjson.parser.ParserConfig.global.addAccept("com.alibaba.json.bvt.bug.Issue_748.");
      }
  
      public void testJsonObjectWithClassName() {
          JSONObject jsonObject = new JSONObject();
          jsonObject.put("key1", "value1");
          jsonObject.put("key2", "value2");
          DataObject dataObject = new DataObject();
          dataObject.setValue(jsonObject);
          String jsonStr = JSON.toJSONString(dataObject, SerializerFeature.QuoteFieldNames,
                                             SerializerFeature.SkipTransientField, SerializerFeature.WriteClassName);
  
  //        System.out.println("parse之前:" + jsonStr);
  
          DataObject obj = (DataObject) JSON.parse(jsonStr, Feature.IgnoreNotMatch);
          Assert.assertNotNull(obj.value);
          Assert.assertNotNull(obj.value.get("key1"));
          Assert.assertNotNull(obj.value.get("key2"));
      }
  
      public static class DataObject {
  
          private JSONObject value;
  
          public DataObject(){
          }
  
          public JSONObject getValue() {
              return value;
          }
  
          public void setValue(JSONObject value) {
              this.value = value;
          }
  
          @Override
          public String toString() {
              return "DataObject{" + "value=" + value + '}';
          }
      }
  
  }
  