频道分类

Delphi10.3构造一个JSON数据的第二种方法,并格式化输出

作者:admin 来源: 日期:2019/10/1 16:42:28 人气: 标签:

 
用Delphi10.3构造一个JSON数据的第二种方法,并格式化输出,代码如下:

复制代码
uses
  //System.JSON,
  System.JSON.Types,
  System.JSON.Writers;

procedure TForm1.Button2Click(Sender: TObject);
var
  m_StringWriter: TStringWriter;
  m_JsonWriter: TJsonTextWriter;
begin
  m_StringWriter := TStringWriter.Create();
  m_JsonWriter := TJsonTextWriter.Create(m_StringWriter);
  try
    // JSON代码格式化,None为不格式化
    m_JsonWriter.Formatting := TJsonFormatting.Indented;
    m_JsonWriter.WriteStartObject;
    // 添加班级
    m_JsonWriter.WritePropertyName('五班');
    m_JsonWriter.WriteStartArray;
    // 添加一个学生
    m_JsonWriter.WriteStartObject;
    m_JsonWriter.WritePropertyName('姓名');
    m_JsonWriter.WriteValue('张三');
    m_JsonWriter.WritePropertyName('成绩');
    m_JsonWriter.WriteValue(75.5);
    m_JsonWriter.WriteEndObject;
    // 添加第二个学生
    m_JsonWriter.WriteStartObject;
    m_JsonWriter.WritePropertyName('姓名');
    m_JsonWriter.WriteValue('李四');
    m_JsonWriter.WritePropertyName('成绩');
    m_JsonWriter.WriteValue(21.7);
    m_JsonWriter.WriteEndObject;
    // 结束
    m_JsonWriter.WriteEndArray;
    m_JsonWriter.WriteEndObject;
    // 输出
    Memo1.Lines.Clear;
    Memo1.Lines.Add(m_StringWriter.ToString);
  finally
    m_JsonWriter.Free;
    m_StringWriter.Free;
  end;
end;
复制代码
二、输出结果如下:  

{

    "五班": [

        {

            "姓名": "张三",

            "成绩": 75.5

        },

        {

            "姓名": "李四",

            "成绩": 21.7

        }

    ]

}