Reputation: 15197
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
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
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
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