vts
vts

Reputation: 1717

Trying to get right JSON format from a asp.net Web API post

I need my response to look like this (JSON array inside the object):

{"files":[
 {
"name":"3992wp_ss_20130215_0001.jpg","size":102,"url":"/Files/3992wp_ss_20130215_0001.jpg","thumbnail_url":"","de    lete_url":"/Files/3992wp_ss_20130215_0001.jpg","delete_type":"DELETE"
} 
  ]}

But I'm getting this (JSON array around the object):

[{"files":  
{"name":"3992wp_ss_20130215_0001.jpg","size":102,"url":"/Files/3992wp_ss_20130215_0001.jpg","thumbnail_url":"","delete_url":"/Files/3992wp_ss_20130215_0001.jpg","delete_type":"DELETE"}}
]

Here is my code:

public IEnumerable<allFiles> Post()
{
    // read data

    List<DocFile> files = new List<DocFile>();

    DocFile file1 = new DocFile();
    file1.name = _fileName;
    file1.size = _lengh;
    file1.url = "/Files/" + _fileName;
    file1.thumbnail_url = "";
    file1.delete_url = "/Files/" + _fileName; 
    file1.delete_type = "DELETE";

    files.Add(file1);


    allFiles fileCont = new allFiles();
    fileCont.files = files;

    return fileCont;
}

public class allFiles
{
    public IEnumerable<DocFile> files { get; set; }
}

public class DocFile
{
    public string name { get; set; }
    public long size { get; set; }
    public string url { get; set; }
    public string thumbnail_url { get; set; }
    public string delete_url { get; set; }
    public string delete_type { get; set; }
}

Upvotes: 0

Views: 208

Answers (1)

RMalke
RMalke

Reputation: 4094

I think your problem is in the return, try to return allFiles instance.

Something like:

public allFiles Post()
{
     //read data

    List<DocFile> files = new List<DocFile>();

    DocFile file1 = new DocFile();
    file1.name = _fileName;
    file1.size = _lengh;
    file1.url = "/Files/" + _fileName;
    file1.thumbnail_url = "";
    file1.delete_url = "/Files/" + _fileName; 
    file1.delete_type = "DELETE";

    files.Add(file1);

    allFiles fileCont = new allFiles();
    fileCont.files = files;

    return fileCont;
}

Upvotes: 2

Related Questions