protected void fillData(JsonObject data) { if (data.get("snaks") != null) { foreach (JsonObject.Member member in data.get("snaks").asObject()) { Dictionary<string, Snak> list = new Dictionary<string, Snak>(); foreach (JsonValue value in member.value.asArray()) { Snak snak = Snak.newFromArray(value.asObject()); list.Add(snak.dataValue.getHash(), snak); } this.snaks.Add(member.name, list); } } if (data.get("hash") != null) { this.hash = data.get("hash").asString(); } if (this.internalId == null) { if (this.hash != null) { this.internalId = this.hash; } else { this.internalId = "" + Environment.TickCount + this.statement.internalId; } } }
protected override void fillData(JsonObject data) { base.fillData(data); if (data.get("datatype") != null) { this.datatype = data.get("datatype").asString(); } }
protected override void fillData(JsonObject data) { base.fillData(data); if ( data.get("sitelinks") != null ) { this.sitelinks.Clear(); foreach ( JsonObject.Member member in data.get("sitelinks").asObject() ) { JsonObject obj = member.value.asObject(); this.sitelinks.Add(obj.get("site").asString(), obj.get("title").asString()); } } }
internal static Claim newFromArray(Entity entity, JsonObject data) { if (data.get("type") != null) { switch (data.get("type").asString()) { case "statement": return new Statement(entity, data); default: return new Claim(entity, data); } } throw new Exception("Unknown type"); }
/// <summary> /// Create a list of entities form an api response. /// </summary> /// <param name="result">The result of the api request</param> /// <returns>The list of entities</returns> protected Entity[] parseGetEntitiesApiResponse(JsonObject result) { List<Entity> entities = new List<Entity>(); if (result.get("entities") != null) { foreach (JsonObject.Member member in result.get("entities").asObject()) { if (member.value.asObject().get("missing") == null) { entities.Add(Entity.newFromArray(this, member.value.asObject())); } } } return entities.ToArray(); }
protected override void fillData(JsonObject data) { base.fillData(data); if (data.get("rank") != null) { this.rank = data.get("rank").asString(); } if (data.get("references") != null) { foreach (JsonValue value in data.get("references").asArray()) { Reference reference = new Reference(this, value.asObject()); this.references.Add(reference.internalId, reference); } } }
protected virtual void fillData(JsonObject data) { if (data.get("mainsnak") != null) { this.mMainSnak = Snak.newFromArray(data.get("mainsnak").asObject()); } if (data.get("id") != null) { this.id = data.get("id").asString(); } if (this.internalId == null) { if (this.id != null) { this.internalId = this.id; } else { this.internalId = "" + Environment.TickCount + this.mMainSnak.propertyId + this.mMainSnak.dataValue; } } }
internal static Snak newFromArray(JsonObject data) { if (data.get("snaktype") == null || data.get("property") == null) { throw new ArgumentException("Invalid Snak serialization", "data"); } var dataValue = data.get("datavalue"); if ( dataValue != null ) { return new Snak( data.get("snaktype").asString(), EntityId.newFromPrefixedId(data.get("property").asString()), DataValueFactory.newFromArray(dataValue.asObject()) ); } else { return new Snak( data.get("snaktype").asString(), EntityId.newFromPrefixedId(data.get("property").asString()), null ); } }
protected virtual void fillData(JsonObject data) { if (data.get("id") != null) { this.id = EntityId.newFromPrefixedId(data.get("id").asString()); } if (data.get("lastrevid") != null) { this.lastRevisionId = data.get("lastrevid").asInt(); } JsonValue returnedLabels = data.get("labels"); if ( (returnedLabels != null) && (returnedLabels.isObject()) ) if (data.get("labels") != null) { labels.Clear(); foreach ( JsonObject.Member member in returnedLabels.asObject() ) { JsonObject obj = member.value.asObject(); this.labels.Add(obj.get("language").asString(), obj.get("value").asString()); } } JsonValue returnedDescriptions = data.get("descriptions"); if ( (returnedDescriptions != null) && (returnedDescriptions.isObject()) ) { descriptions.Clear(); foreach ( JsonObject.Member member in returnedDescriptions.asObject() ) { JsonObject obj = member.value.asObject(); this.descriptions.Add(obj.get("language").asString(), obj.get("value").asString()); } } JsonValue returnedAliases = data.get("aliases"); if ( (returnedAliases != null) && (returnedAliases.isObject()) ) { // strange - after save an empty array is returned, whereas by a normal get the fully alias list is returned aliases.Clear(); foreach ( JsonObject.Member member in returnedAliases.asObject() ) { List<String> list = new List<String>(); foreach (JsonValue value in member.value.asArray()) { list.Add(value.asObject().get("value").asString()); } this.aliases.Add(member.name, list); } } JsonValue returnedClaims = data.get("claims"); if ( (returnedClaims != null) && (returnedClaims.isObject()) ) { claims.Clear(); foreach ( JsonObject.Member member in returnedClaims.asObject() ) { Dictionary<String, Claim> list = new Dictionary<String, Claim>(); foreach (JsonValue value in member.value.asArray()) { Claim claim = Claim.newFromArray(this, value.asObject()); list.Add(claim.internalId, claim); } this.claims.Add(member.name, list); } } }
internal void updateLastRevisionIdFromResult(JsonObject result) { if (result.get("pageinfo") != null && result.get("pageinfo").asObject().get("lastrevid") != null) { this.lastRevisionId = result.get("pageinfo").asObject().get("lastrevid").asInt(); } }
internal static Entity newFromArray(WikibaseApi api, JsonObject data) { if (data.get("type") != null) { switch (data.get("type").asString()) { case "item": return new Item(api, data); case "property": return new Property(api, data); } } throw new Exception("Unknown type"); }
protected void updateDataFromResult(JsonObject result) { if (result.get("claim") != null) { this.fillData(result.get("claim").asObject()); } this.entity.updateLastRevisionIdFromResult(result); }
internal static DataValue newFromArray(JsonObject data) { return newDataValue(data.get("type").asString(), data.get("value")); }
private IEnumerable<Entity> ParseJson(JsonObject data) { var result = new List<Entity>(); var actualData = data.get("aaData"); if ( actualData != null ) { var array = actualData.asArray(); foreach ( JsonArray item in array ) { var parsedData = new List<String>(); foreach ( JsonValue dataPoint in item ) { var strippedText = Regex.Replace(dataPoint.asString(), "<.*?>", string.Empty).Replace(",", String.Empty); if ( strippedText == "-" ) { strippedText = "0"; } parsedData.Add(strippedText); } var firstLine = parsedData.First(); if ( !String.IsNullOrWhiteSpace(firstLine) && (firstLine != "00") ) { Entity entity = new Entity(); entity.ParseName(parsedData.ElementAt(1).Replace("ท้องถิ่น", String.Empty).Trim()); entity.geocode = Convert.ToUInt32(firstLine, CultureInfo.InvariantCulture); while ( entity.geocode % 100 == 0 ) { entity.geocode = entity.geocode / 100; } PopulationData population = CreateEmptyPopulationEntry(); entity.population.Add(population); HouseholdDataPoint householdDataPoint = new HouseholdDataPoint(); householdDataPoint.male = Convert.ToInt32(parsedData.ElementAt(2), CultureInfo.InvariantCulture); householdDataPoint.female = Convert.ToInt32(parsedData.ElementAt(3), CultureInfo.InvariantCulture); householdDataPoint.total = Convert.ToInt32(parsedData.ElementAt(4), CultureInfo.InvariantCulture); householdDataPoint.households = Convert.ToInt32(parsedData.ElementAt(5), CultureInfo.InvariantCulture); population.data.Add(householdDataPoint); if ( (householdDataPoint.total > 0) || (householdDataPoint.households > 0) ) { // occasionally there are empty entries, e.g. for 3117 includes an empty 311102 result.Add(entity); } } } } return result; }
/// <summary> /// Get the continuation parameter of a query. /// </summary> /// <param name="result">The result of the query</param> /// <returns>An array containing the continuation parameter key at 0 and the continuation parameter value at 1</returns> public string[] getContinueParam(JsonObject result) { if (result.get("query-continue") != null) { List<string> keys = (List<string>) result.get("query-continue").asObject().names(); List<string> keys2 = (List<string>) result.get("query-continue").asObject().get(keys[0]).asObject().names(); return new string[] { keys2[0], result.get("query-continue").asObject().get(keys[0]).asObject().get(keys2[0]).asString() }; } else { return null; } }