Query name and city using u-sql










0














I need to filter name and city from below nested json.



[

"Employee": [

"name": "John",
"Gender": "Male"

],
"Info":
"location":
"city": "Kuvala",
"continent": "Asia",
"country": "Singapore"


,

"Employee": [

"name": "Mike",
"Gender": "Male"

],
"Info":
"location":
"city": "Dhabi",
"continent": "Asia",
"country": "Dubai"



]



My code




CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM @"/Assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM @"/Assemblies/Microsoft.Analytics.Samples.Formats.dll";

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

DECLARE @InputFile string = @"/Source/example.blob";
DECLARE @output string = @"/Output/output.csv";

@json =
EXTRACT Employee String,
Info String
FROM @InputFile
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("*");

@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);



I ma getting error saying cannot convert from 'Microsoft.Analytics.Types.Sql.SqlArray' to 'string' please help.



Please help me to get Name, City from this.
This should outputs:
John Vulala
Mike Dhabi











share|improve this question























  • Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
    – Peter Bons
    Nov 11 at 11:59











  • Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
    – David
    Nov 11 at 13:33










  • Please help..,,
    – David
    Nov 11 at 20:07















0














I need to filter name and city from below nested json.



[

"Employee": [

"name": "John",
"Gender": "Male"

],
"Info":
"location":
"city": "Kuvala",
"continent": "Asia",
"country": "Singapore"


,

"Employee": [

"name": "Mike",
"Gender": "Male"

],
"Info":
"location":
"city": "Dhabi",
"continent": "Asia",
"country": "Dubai"



]



My code




CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM @"/Assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM @"/Assemblies/Microsoft.Analytics.Samples.Formats.dll";

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

DECLARE @InputFile string = @"/Source/example.blob";
DECLARE @output string = @"/Output/output.csv";

@json =
EXTRACT Employee String,
Info String
FROM @InputFile
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("*");

@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);



I ma getting error saying cannot convert from 'Microsoft.Analytics.Types.Sql.SqlArray' to 'string' please help.



Please help me to get Name, City from this.
This should outputs:
John Vulala
Mike Dhabi











share|improve this question























  • Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
    – Peter Bons
    Nov 11 at 11:59











  • Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
    – David
    Nov 11 at 13:33










  • Please help..,,
    – David
    Nov 11 at 20:07













0












0








0


1





I need to filter name and city from below nested json.



[

"Employee": [

"name": "John",
"Gender": "Male"

],
"Info":
"location":
"city": "Kuvala",
"continent": "Asia",
"country": "Singapore"


,

"Employee": [

"name": "Mike",
"Gender": "Male"

],
"Info":
"location":
"city": "Dhabi",
"continent": "Asia",
"country": "Dubai"



]



My code




CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM @"/Assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM @"/Assemblies/Microsoft.Analytics.Samples.Formats.dll";

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

DECLARE @InputFile string = @"/Source/example.blob";
DECLARE @output string = @"/Output/output.csv";

@json =
EXTRACT Employee String,
Info String
FROM @InputFile
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("*");

@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);



I ma getting error saying cannot convert from 'Microsoft.Analytics.Types.Sql.SqlArray' to 'string' please help.



Please help me to get Name, City from this.
This should outputs:
John Vulala
Mike Dhabi











share|improve this question















I need to filter name and city from below nested json.



[

"Employee": [

"name": "John",
"Gender": "Male"

],
"Info":
"location":
"city": "Kuvala",
"continent": "Asia",
"country": "Singapore"


,

"Employee": [

"name": "Mike",
"Gender": "Male"

],
"Info":
"location":
"city": "Dhabi",
"continent": "Asia",
"country": "Dubai"



]



My code




CREATE ASSEMBLY IF NOT EXISTS [Newtonsoft.Json] FROM @"/Assemblies/Newtonsoft.Json.dll";
CREATE ASSEMBLY IF NOT EXISTS [Microsoft.Analytics.Samples.Formats] FROM @"/Assemblies/Microsoft.Analytics.Samples.Formats.dll";

REFERENCE ASSEMBLY [Newtonsoft.Json];
REFERENCE ASSEMBLY [Microsoft.Analytics.Samples.Formats];

USING Microsoft.Analytics.Samples.Formats.Json;

DECLARE @InputFile string = @"/Source/example.blob";
DECLARE @output string = @"/Output/output.csv";

@json =
EXTRACT Employee String,
Info String
FROM @InputFile
USING new Microsoft.Analytics.Samples.Formats.Json.JsonExtractor("*");

@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;

OUTPUT @result
TO @output
USING Outputters.Csv(outputHeader : true, quoting : true);



I ma getting error saying cannot convert from 'Microsoft.Analytics.Types.Sql.SqlArray' to 'string' please help.



Please help me to get Name, City from this.
This should outputs:
John Vulala
Mike Dhabi








azure azure-sql-database azure-data-lake u-sql






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 11 at 13:40

























asked Nov 11 at 11:24









David

32




32











  • Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
    – Peter Bons
    Nov 11 at 11:59











  • Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
    – David
    Nov 11 at 13:33










  • Please help..,,
    – David
    Nov 11 at 20:07
















  • Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
    – Peter Bons
    Nov 11 at 11:59











  • Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
    – David
    Nov 11 at 13:33










  • Please help..,,
    – David
    Nov 11 at 20:07















Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
– Peter Bons
Nov 11 at 11:59





Hi, we require some effort from your side. What is your U-sql script so far? There are numerous examples on the internet if you haven't any clue at all. Start with those first.
– Peter Bons
Nov 11 at 11:59













Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
– David
Nov 11 at 13:33




Hi @PeterBons , I have updated with my code. I am new and not getting proper documentation from beginner to expert level. Please help me this time.
– David
Nov 11 at 13:33












Please help..,,
– David
Nov 11 at 20:07




Please help..,,
– David
Nov 11 at 20:07












1 Answer
1






active

oldest

votes


















0














I think you are getting this error because the contents of the Employee elements is defined as an array:



"Employee": [

"name": "Mike",
"Gender": "Male"

]


Try changing the Employee elements to something like this:



"Employee": 
"name": "Mike",
"Gender": "Male"



Update



It seems you might need to perform JsonTuple on the array item, so this might work:



@result =
SELECT JsonFunctions.JsonTuple(EmployeeData[0])["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


One thing to note, if the Employee array might hold more than one item, you'll probably need to use Cross Apply Explode.



Update 2



Unfortunately, this is the last thing I can think of. try replacing:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


With this:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee).Values AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;
@result =
SELECT JsonFunctions.JsonTuple(employee)["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple
CROSS APPLY
EXPLODE(EmployeeData) AS employees(employee) ;


Hope it helps!






share|improve this answer






















  • I can not change it, the data i am getting is from third party.
    – David
    Nov 12 at 8:23










  • copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
    – David
    Nov 12 at 10:33










  • i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
    – David
    Nov 12 at 10:34











  • See updated answer
    – Itay Podhajcer
    Nov 12 at 11:39










  • Still same exception : cannot convert from 'int' to 'string'
    – David
    Nov 12 at 13:28










Your Answer






StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");

StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);













draft saved

draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248228%2fquery-name-and-city-using-u-sql%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









0














I think you are getting this error because the contents of the Employee elements is defined as an array:



"Employee": [

"name": "Mike",
"Gender": "Male"

]


Try changing the Employee elements to something like this:



"Employee": 
"name": "Mike",
"Gender": "Male"



Update



It seems you might need to perform JsonTuple on the array item, so this might work:



@result =
SELECT JsonFunctions.JsonTuple(EmployeeData[0])["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


One thing to note, if the Employee array might hold more than one item, you'll probably need to use Cross Apply Explode.



Update 2



Unfortunately, this is the last thing I can think of. try replacing:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


With this:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee).Values AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;
@result =
SELECT JsonFunctions.JsonTuple(employee)["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple
CROSS APPLY
EXPLODE(EmployeeData) AS employees(employee) ;


Hope it helps!






share|improve this answer






















  • I can not change it, the data i am getting is from third party.
    – David
    Nov 12 at 8:23










  • copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
    – David
    Nov 12 at 10:33










  • i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
    – David
    Nov 12 at 10:34











  • See updated answer
    – Itay Podhajcer
    Nov 12 at 11:39










  • Still same exception : cannot convert from 'int' to 'string'
    – David
    Nov 12 at 13:28















0














I think you are getting this error because the contents of the Employee elements is defined as an array:



"Employee": [

"name": "Mike",
"Gender": "Male"

]


Try changing the Employee elements to something like this:



"Employee": 
"name": "Mike",
"Gender": "Male"



Update



It seems you might need to perform JsonTuple on the array item, so this might work:



@result =
SELECT JsonFunctions.JsonTuple(EmployeeData[0])["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


One thing to note, if the Employee array might hold more than one item, you'll probably need to use Cross Apply Explode.



Update 2



Unfortunately, this is the last thing I can think of. try replacing:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


With this:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee).Values AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;
@result =
SELECT JsonFunctions.JsonTuple(employee)["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple
CROSS APPLY
EXPLODE(EmployeeData) AS employees(employee) ;


Hope it helps!






share|improve this answer






















  • I can not change it, the data i am getting is from third party.
    – David
    Nov 12 at 8:23










  • copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
    – David
    Nov 12 at 10:33










  • i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
    – David
    Nov 12 at 10:34











  • See updated answer
    – Itay Podhajcer
    Nov 12 at 11:39










  • Still same exception : cannot convert from 'int' to 'string'
    – David
    Nov 12 at 13:28













0












0








0






I think you are getting this error because the contents of the Employee elements is defined as an array:



"Employee": [

"name": "Mike",
"Gender": "Male"

]


Try changing the Employee elements to something like this:



"Employee": 
"name": "Mike",
"Gender": "Male"



Update



It seems you might need to perform JsonTuple on the array item, so this might work:



@result =
SELECT JsonFunctions.JsonTuple(EmployeeData[0])["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


One thing to note, if the Employee array might hold more than one item, you'll probably need to use Cross Apply Explode.



Update 2



Unfortunately, this is the last thing I can think of. try replacing:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


With this:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee).Values AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;
@result =
SELECT JsonFunctions.JsonTuple(employee)["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple
CROSS APPLY
EXPLODE(EmployeeData) AS employees(employee) ;


Hope it helps!






share|improve this answer














I think you are getting this error because the contents of the Employee elements is defined as an array:



"Employee": [

"name": "Mike",
"Gender": "Male"

]


Try changing the Employee elements to something like this:



"Employee": 
"name": "Mike",
"Gender": "Male"



Update



It seems you might need to perform JsonTuple on the array item, so this might work:



@result =
SELECT JsonFunctions.JsonTuple(EmployeeData[0])["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


One thing to note, if the Employee array might hold more than one item, you'll probably need to use Cross Apply Explode.



Update 2



Unfortunately, this is the last thing I can think of. try replacing:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee) AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;

@result =
SELECT EmployeeData["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple;


With this:



@CreateJSONTuple =
SELECT JsonFunctions.JsonTuple(Employee).Values AS EmployeeData,
JsonFunctions.JsonTuple(Info) AS InfoData
FROM @json;
@result =
SELECT JsonFunctions.JsonTuple(employee)["name"] AS Name,
JsonFunctions.JsonTuple(InfoData, "location") AS LocationData
FROM @CreateJSONTuple
CROSS APPLY
EXPLODE(EmployeeData) AS employees(employee) ;


Hope it helps!







share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 12 at 13:47

























answered Nov 12 at 7:08









Itay Podhajcer

1,529312




1,529312











  • I can not change it, the data i am getting is from third party.
    – David
    Nov 12 at 8:23










  • copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
    – David
    Nov 12 at 10:33










  • i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
    – David
    Nov 12 at 10:34











  • See updated answer
    – Itay Podhajcer
    Nov 12 at 11:39










  • Still same exception : cannot convert from 'int' to 'string'
    – David
    Nov 12 at 13:28
















  • I can not change it, the data i am getting is from third party.
    – David
    Nov 12 at 8:23










  • copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
    – David
    Nov 12 at 10:33










  • i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
    – David
    Nov 12 at 10:34











  • See updated answer
    – Itay Podhajcer
    Nov 12 at 11:39










  • Still same exception : cannot convert from 'int' to 'string'
    – David
    Nov 12 at 13:28















I can not change it, the data i am getting is from third party.
– David
Nov 12 at 8:23




I can not change it, the data i am getting is from third party.
– David
Nov 12 at 8:23












copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
– David
Nov 12 at 10:33




copiler error for EmployeeData[0]["name"]: cannot convert from 'int' to 'string'
– David
Nov 12 at 10:33












i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
– David
Nov 12 at 10:34





i tried another way and got copiler error for EmployeeData["0"]["name"]: cannot convert from 'string' to 'int'
– David
Nov 12 at 10:34













See updated answer
– Itay Podhajcer
Nov 12 at 11:39




See updated answer
– Itay Podhajcer
Nov 12 at 11:39












Still same exception : cannot convert from 'int' to 'string'
– David
Nov 12 at 13:28




Still same exception : cannot convert from 'int' to 'string'
– David
Nov 12 at 13:28

















draft saved

draft discarded
















































Thanks for contributing an answer to Stack Overflow!


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid


  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248228%2fquery-name-and-city-using-u-sql%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Use pre created SQLite database for Android project in kotlin

Darth Vader #20

Ondo