Pomster
Pomster

Reputation: 15197

Json building its self for each variable?

I am trying to build a json in my project but have it recreating it's self for each variable. Please could someone show me how i can get all in the same group?

Classes:

    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;}
    }

How i build my 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 = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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();

Result:

{
    "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": "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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"
        }
    ]
}

Upvotes: 0

Views: 95

Answers (3)

mehmetseckin
mehmetseckin

Reputation: 3107

You're creating an object for every field. You should initialize all fields in one object.

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 = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    redirect_uris = "http://www.hlhstp.com/oauth2callback5",
                    client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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();

Upvotes: 1

Trevor Pilley
Trevor Pilley

Reputation: 16393

The problem you have is that you are creating a new Client_Secret for each property, what you want to do is just create one and set all the properties:

          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 = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
                    redirect_uris = "http://www.hlhstp.com/oauth2callback5",
                    client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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"
                }
            }

Upvotes: 1

T.J. Crowder
T.J. Crowder

Reputation: 1074295

You're repeatedly calling the constructor, each time passing one different initialization parameter. Call the constructor once, passing in all the initialization parameters.

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 = "789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.com",
            redirect_uris = "http://www.hlhstp.com/oauth2callback5",
            client_x509_cert_url = "https://www.googleapis.com/robot/v1/metadata/x509/789526175471-mh3o48ooi8va0mr0lke62pvqnf3kd2fj@developer.gserviceaccount.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();

That's still producing a list, even though it has only one entry. If you want just one entry, get rid of the list as well, but I figure it's required for your GetClient_Secrets object's initializer.

Upvotes: 1

Related Questions