Nijaz Citaku
Nijaz Citaku

Reputation: 11

Why this string is not valid JSON

[{"OperId":1,"OperEmri":XXXX,"OperPass":YYYY,"OperShifra":222222222,"OperNrFisk":111111111,"OperKompania":ZZZZ,"OperVendi":ZZZZ}]

Delphi's REST Debugger returns "CONTENT IS NOT JSON".

Can anyone tell me why?


This string is generated automatically, this is the code:

JsonArray := TJSONArray.Create;
if QryUser.RecordCount > 0 then begin
  try
    QryUser.First;
    while not QryUser.Eof do begin
      JsonObject := TJSONObject.Create;
      with JsonObject do begin
        AddPair('OperId', TJSONNumber.Create(QryUser.FieldByName('OperId').AsString));
        AddPair('OperEmri', TJSONNumber.Create(QryUser.FieldByName('OperEmri').AsString));
        AddPair('OperPass', TJSONNumber.Create(QryUser.FieldByName('OperPass').AsString));
        AddPair('OperShifra', TJSONNumber.Create(QryUser.FieldByName('OperShifra').AsString));
        AddPair('OperNrFisk', TJSONNumber.Create(QryUser.FieldByName('OperNrFisk').AsString));
        AddPair('OperKompania', TJSONNumber.Create(QryUser.FieldByName('OperKompania').AsString));
        AddPair('OperVendi', TJSONNumber.Create(QryUser.FieldByName('OperVendi').AsString));
      end;
      //AddFieldsToJSON(JsonObject, QryUser);
      JsonArray.AddElement(JsonObject);
      QryUser.Next;
    end;
  finally
    Response.ContentType := 'application/json';
    Response.Content := JsonArray.ToJSON();
    JsonArray.DisposeOf;
    QryUser.Close;
  end;

Upvotes: 1

Views: 572

Answers (1)

Wojciech
Wojciech

Reputation: 81

You need "" around the string values, like this:

"OperEmri":"Njazi"

Numbers should be without the "".

In answer to your second post:

Use TJSONNumber for numbers only, you should use TJSONString for strings.

Upvotes: 3

Related Questions