import "dart:convert";
  
void main()
{
    // 1. Map의 Key, Value는 큰따옴표로 묶든, 작은따옴표로 묶든 상관없다.
    final List _list1 = [{"Name":"Park", "Age":45}];
    print("List :  $_list1");
    print("String : ${json.encode(_list1)}");
  
    print("\n");
    /*
       List :  [{Name: Park, Age: 45}]
       String : [{"Name":"Park","Age":45}]
     */
  
    final List _list2 = [{'Name':'Park', 'Age':45}];
    print("List :  $_list2");
    print("String : ${json.encode(_list2)}");
  
    print("\n");
    /*
       List :  [{Name: Park, Age: 45}]
       String : [{"Name":"Park","Age":45}]
     */
  
  
    /*
     * 2. 작은따옴표로 묶은 json형태는 jsonDecode시 error발생
    final String _jsonText1 = "[{'Name':'Hong', 'Age':34}, {'Name':'Park', 'Age':45}]";
    print("String : $_jsonText1");
    print("List : ${jsonDecode(_jsonText1)}");
    */
  
    // 3. 작은따옴표로 각 문장을 묶은 String을 개행해서 작성해도 인식된다. 
    final String _jsonText2 = '[{"Name":"Hong", "Age":34}'
      ',{"Name":"Kim", "Age":23}'
      ',{"Name":"Park", "Age":45}]';
    print("String : $_jsonText2");
    print("List : ${json.decode(_jsonText2)}");
  
    print("\n");
    /*
       String : [{"Name":"Hong", "Age":34},{"Name":"Kim", "Age":23},{"Name":"Park", "Age":45}]
       List : [{Name: Hong, Age: 34}, {Name: Kim, Age: 23}, {Name: Park, Age: 45}]
     */ 
  
    // 4. 작은따옴표 '''로 묶은 Text형태도 인식된다.
    final String _jsonText3 = '''
        [
             {"Name":"Hong", "Age":34}
            ,{"Name":"Kim", "Age":23}
            ,{"Name":"Park", "Age":45}
        ]
        ''';
    print("String : \n$_jsonText3");
    print("List : ${json.decode(_jsonText3)}");
    /*
       String : 
       [
            {"Name":"Hong", "Age":34}
           ,{"Name":"Kim", "Age":23}
           ,{"Name":"Park", "Age":45}
       ]
       
       List : [{Name: Hong, Age: 34}, {Name: Kim, Age: 23}, {Name: Park, Age: 45}]
     */
}