0

I've seen to hit a bump with this. I can't seem to get the array of the map from text file. I mean, I can get everything else BUT the map's array tiles.

This is the text file:

{
'name': 'map_one.txt',
'title': 'xxx One',
'currentMap': 4,
'rightMap': 3,
'lefttMap': 5,
'downMap': 1,
'upMap': 2,
'items': [
    { name: 'Pickaxe', x: 5, y: 1 },
    { name: 'Battleaxe', x: 2, y: 3 }
],
    'map': [ [ 1,3,1,1,1,24,1,1,1,1,1,1,1 ],
    [ 1,3,1,1,1,24,1,1,1,1,1,1,1 ],
    [ 1,7,1,1,1,24,1,1,24,1,1,1,1 ],
    [ 1,7,1,1,7,1,1,1,24,1,1,1,1 ],
    [ 1,7,7,7,1,24,24,24,24,1,1,1,1 ],
    [ 1,1,7,1,1,24,1,24,1,1,1,1,1 ],
    [ 1,1,1,1,1,24,1,1,1,1,1,1,1 ],
    [ 1,1,3,1,1,24,1,1,1,1,1,1,1 ],
    [ 1,3,3,1,1,24,1,1,1,1,1,1,1 ]]
};

and when I run it, I get this:

==========================
 JSON MAP LOAD...
==========================

Name of map: xxx One
File of map: map_one.txt
ID of map: 4

==========================
 ITEMS IN MAP
==========================

# OF ITEMS: 2

>> Name: Pickaxe (5, 1)
>> Name: Battleaxe (2, 3)

==========================
 TILES OF MAP
==========================

null
Press any key to continue . . .

See the null? It's *suppose to be numbers of arrays.

I'm doing it wrong, probably, I know. Here's what I have so far:

import java.util.*;
import java.io.*;
import com.google.gson.*;


public class readGoogle {

    public static String MapTitle;
    public static Data data;
    public static Item item;
    public static String dan;
    public static FileReader fr;
    public static int number;
    public static int currentMap;
    public static int tile;
    public static String[] wepN;


        public static void main(String[] args) {


try {
    fr = new FileReader("map1.txt");
}catch(FileNotFoundException fne) {
    fne.printStackTrace();
}
        StringBuffer sb = new StringBuffer();
        char[] b = new char[1000];
        int n = 0;
        try {
        while ((n = fr.read(b)) > 0) {
             sb.append(b, 0, n);
         }
         }catch(IOException rex) {
             rex.printStackTrace();
         }
        String fileString = sb.toString();

    try {
    data = new Gson().fromJson(fileString, Data.class);
    }catch (Exception er) {
        er.printStackTrace();
    }

System.out.println("==========================\n JSON MAP LOAD...\n==========================\n");

    System.out.println("Name of map: " + data.getTitle());
    System.out.println("File of map: " + data.getName());
    System.out.println("ID of map: " + data.getCurrentMap());


String[] wepN = new String[100];
String[] wepX = new String[100];
String[] wepY = new String[100];
int[] tile = new int[256];

int wepQty = 0;

try {
for (int i=0; i < wepN.length; i++) {
    if (data.getItems().get(i).getName() == null || "".equals(data.getItems().get(i).getName())) {
        System.out.println(data.getItems().get(i).getName() + " -NO MOARE");
        break;
    }

    wepN[i] = data.getItems().get(i).getName();
    wepX[i] = Integer.toString(data.getItems().get(i).getX());
    wepY[i] = Integer.toString(data.getItems().get(i).getY());

    wepQty++;
}
}catch(Exception xe) { }

System.out.println("\n==========================\n ITEMS IN MAP\n==========================\n");
System.out.println("# OF ITEMS: " + wepQty + "\n");

for (int i=0; i < wepQty; i++) {
        System.out.println(">> Name: " + wepN[i] + " (" + wepX[i] + ", " + wepY[i] + ")");
    }

System.out.println("\n==========================\n TILES OF MAP\n==========================\n");

System.out.println(data.getMap());
    }


public static class Item {
        public String name;
        public int x;
        public int y;
        public int tile;

        public String getName() { return name; }
        public int getX() { return x; }
        public int getY() { return y; }

        public void setName(String name) { this.name = name; }
        public void setX(int x) { this.x = x; }
        public void setY(int y) { this.y = y; }
    }


      public static class Data {
            private String name;
            private String title;
            private int currentMap;
            private List<Item> items;
            private int[][] tile;

            public String getName() { return name; }
            public int getCurrentMap() { return currentMap; }
            public String getTitle() { return title; }
            public List<Item> getItems() { return items; }
            public int[][] getMap() { return tile; }

            public void setName(String name) { this.name = name; }
            public void setTitle(String title) { this.title = title; }
            public void setItems(List<Item> items) { this.items = items; }
            public void setMap(int[][] tile) { this.tile = tile; }
        }

}
0

1 Answer 1

3

My thought is that the Data class has a tiles field for holding the map but in the JSON it is named map.

try:

public static class Data {
            private String name;
            private String title;
            private int currentMap;
            private List<Item> items;
            private int[][] map;

            public String getName() { return name; }
            public int getCurrentMap() { return currentMap; }
            public String getTitle() { return title; }
            public List<Item> getItems() { return items; }
            public int[][] getMap() { return map; }

            public void setName(String name) { this.name = name; }
            public void setTitle(String title) { this.title = title; }
            public void setItems(List<Item> items) { this.items = items; }
            public void setMap(int[][] map) { this.map=  map; }
        }
1
  • Thanks! It worked! :D data.getMap()[1][1] produces 3! :D Woohoo. Commented Feb 3, 2011 at 19:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.