2014-10-02 2 views
0

Я пытаюсь создать json в своем проекте, но при этом он воссоздает его для каждой переменной. Может кто-нибудь покажет мне, как я могу получить все в одной группе?Json строит свое я для каждой переменной?

Классы:

public class GetClient_Secrets 
    { 
     public List<Client_Secret> web {get; set;} 
    } 
    public class Client_Secret 
    { 
     public string auth_uri {get; set;} 
     public string client_secret {get; set;} 
     public string token_uri {get; set;} 
     public string client_email {get; set;} 
     public string redirect_uris {get; set;} 
     public string client_x509_cert_url {get; set;} 
     public string client_id {get; set;} 
     public string auth_provider_x509_cert_url {get; set;} 
     public string javascript_origins {get; set;} 
    } 

Как я строю мой JSon:

var jsonResult = new GetClient_Secrets 
      { 
       web = new List<Client_Secret> 
       { 
        new Client_Secret {auth_uri = "https://accounts.google.com/o/oauth2/auth1"}, 
        new Client_Secret {client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2"}, 
        new Client_Secret {token_uri = "https://accounts.google.com/o/oauth2/token3"}, 
        new Client_Secret {client_email = "[email protected]account.com"}, 
        new Client_Secret {redirect_uris = "http://www.hlhstp.com/oauth2callback5"}, 
        new Client_Secret {client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]account.com"}, 
        new Client_Secret {client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com"}, 
        new Client_Secret {auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6"}, 
        new Client_Secret {javascript_origins = "http://www.hlhstp.com"} 
       } 
      }; 
      return JsonConvert.SerializeObject(jsonResult);//.Dump(); 

Результат:

{ 
    "web": [ 
     { 
      "auth_uri": "https://accounts.google.com/o/oauth2/auth1", 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": "jCTUEYcUUKFnbFqLuPmnC-ZO2", 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": "https://accounts.google.com/o/oauth2/token3", 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": "[email protected]account.com", 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": "http://www.hlhstp.com/oauth2callback5", 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]account.com", 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com", 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs6", 
      "javascript_origins": null 
     }, 
     { 
      "auth_uri": null, 
      "client_secret": null, 
      "token_uri": null, 
      "client_email": null, 
      "redirect_uris": null, 
      "client_x509_cert_url": null, 
      "client_id": null, 
      "auth_provider_x509_cert_url": null, 
      "javascript_origins": "http://www.hlhstp.com" 
     } 
    ] 
} 

ответ

1

Вы создаете объект для каждого поле. Вы должны инициализировать все поля в одном объекте.

var jsonResult = new GetClient_Secrets 
     { 
      web = new List<Client_Secret> 
      { 
       new Client_Secret { 
        auth_uri = "https://accounts.google.com/o/oauth2/auth1", 
        client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2", 
        token_uri = "https://accounts.google.com/o/oauth2/token3", 
        client_email = "[email protected]account.com", 
        redirect_uris = "http://www.hlhstp.com/oauth2callback5", 
        client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]account.com", 
        client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com", 
        auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6", 
        javascript_origins = "http://www.hlhstp.com" 
       } 
      } 
     }; 
return JsonConvert.SerializeObject(jsonResult);//.Dump(); 
1

Вы неоднократно вызова конструктора, каждый раз проходя один другой параметр инициализации , Вызовите конструктор один раз, передав все параметры инициализации.

var jsonResult = new GetClient_Secrets 
{ 
    web = new List<Client_Secret> 
    { 
     new Client_Secret { 
      auth_uri = "https://accounts.google.com/o/oauth2/auth1"}, 
      client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2", 
      token_uri = "https://accounts.google.com/o/oauth2/token3", 
      client_email = "[email protected]account.com", 
      redirect_uris = "http://www.hlhstp.com/oauth2callback5", 
      client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]account.com", 
      client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com", 
      auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6", 
      javascript_origins = "http://www.hlhstp.com" 
     } 
    } 
}; 
return JsonConvert.SerializeObject(jsonResult);//.Dump(); 

Это все еще составление списка, хотя оно имеет только одну запись. Если вы хотите только одну запись, избавитесь от списка, но я полагаю, что это необходимо для вашего инициализатора объекта GetClient_Secrets.

1

Проблемы у вас есть то, что вы создаете новый Client_Secret для каждого свойства, что вы хотите сделать, это просто создать и установить все свойства:

  web = new List<Client_Secret> 
      { 
       new Client_Secret 
       { 
        auth_uri = "https://accounts.google.com/o/oauth2/auth1", 
        client_secret = "jCTUEYcUUKFnbFqLuPmnC-ZO2", 
        token_uri = "https://accounts.google.com/o/oauth2/token3", 
        client_email = "[email protected]account.com", 
        redirect_uris = "http://www.hlhstp.com/oauth2callback5", 
        client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/[email protected]account.com", 
        client_id = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj.apps.googleusercontent.com", 
        auth_provider_x509_cert_url = "https://www.googleapis.com/oauth2/v1/certs6", 
        javascript_origins = "http://www.hlhstp.com" 
       } 
      } 
Смежные вопросы